Documentation ¶
Index ¶
- Constants
- Variables
- func AgentConf(info AgentInfo, renderer shell.Renderer) common.Conf
- func ContainerAgentConf(info AgentInfo, renderer shell.Renderer, containerType string) common.Conf
- func DiscoverInitSystemScript() string
- func InstallAndStart(svc ServiceActions) error
- func ListServicesScript() string
- func Restart(name string) error
- func ShutdownAfterConf(serviceName string) (common.Conf, error)
- func VersionInitSystem(series string) (string, error)
- type AgentInfo
- type AgentKind
- type RestartableService
- type Service
- type ServiceActions
Constants ¶
const ( InitSystemSystemd = "systemd" InitSystemUpstart = "upstart" InitSystemWindows = "windows" )
These are the names of the init systems regognized by juju.
Variables ¶
var ListServices = func() ([]string, error) { hostSeries, err := series.HostSeries() if err != nil { return nil, errors.Trace(err) } initName, err := VersionInitSystem(hostSeries) if err != nil { return nil, errors.Trace(err) } switch initName { case InitSystemWindows: services, err := windows.ListServices() if err != nil { return nil, errors.Annotatef(err, "failed to list %s services", initName) } return services, nil case InitSystemUpstart: services, err := upstart.ListServices() if err != nil { return nil, errors.Annotatef(err, "failed to list %s services", initName) } return services, nil case InitSystemSystemd: services, err := systemd.ListServices() if err != nil { return nil, errors.Annotatef(err, "failed to list %s services", initName) } return services, nil default: return nil, errors.NotFoundf("init system %q", initName) } }
ListServices lists all installed services on the running system
var NewService = func(name string, conf common.Conf, series string) (Service, error) { if name == "" { return nil, errors.New("missing name") } initSystem, err := versionInitSystem(series) if err != nil { return nil, errors.Trace(err) } return newService(name, conf, initSystem, series) }
NewService returns a new Service based on the provided info.
Functions ¶
func AgentConf ¶
AgentConf returns the data that defines an init service config for the identified agent.
func ContainerAgentConf ¶
ContainerAgentConf returns the data that defines an init service config for the identified agent running in a container.
func DiscoverInitSystemScript ¶
func DiscoverInitSystemScript() string
DiscoverInitSystemScript returns the shell script to use when discovering the local init system. The script is quite specific to bash, so it includes an explicit bash shbang.
func InstallAndStart ¶
func InstallAndStart(svc ServiceActions) error
InstallAndStart installs the provided service and tries starting it. The first few Start failures are ignored.
func ListServicesScript ¶
func ListServicesScript() string
ListServicesScript returns the commands that should be run to get a list of service names on a host.
func ShutdownAfterConf ¶
ShutdownAfterConf builds a service conf that will cause the host to shut down after the named service stops.
func VersionInitSystem ¶
VersionInitSystem returns an init system name based on the provided series. If one cannot be identified a NotFound error is returned.
Types ¶
type AgentInfo ¶
type AgentInfo struct { // ID is the string that identifies the agent uniquely within // a juju environment. ID string // Kind is the kind of agent. Kind AgentKind // DataDir is the path to the agent's data dir. DataDir string // LogDir is the path to the agent's log dir. LogDir string // contains filtered or unexported fields }
AgentInfo holds commonly used information about a juju agent.
func NewAgentInfo ¶
NewAgentInfo composes a new AgentInfo for the given essentials.
func NewMachineAgentInfo ¶
NewMachineAgentInfo returns a new AgentInfo for a machine agent.
func NewUnitAgentInfo ¶
NewUnitAgentInfo returns a new AgentInfo for a unit agent.
type RestartableService ¶
type RestartableService interface { // Restart restarts the service. Restart() error }
RestartableService is a service that directly supports restarting.
type Service ¶
type Service interface { ServiceActions // Name returns the service's name. Name() string // Conf returns the service's conf data. Conf() common.Conf // Running returns a boolean value that denotes // whether or not the service is running. Running() (bool, error) // Exists returns whether the service configuration exists in the // init directory with the same content that this Service would have // if installed. Exists() (bool, error) // Installed will return a boolean value that denotes // whether or not the service is installed. Installed() (bool, error) // InstallCommands returns the list of commands to run on a // (remote) host to install the service. InstallCommands() ([]string, error) // StartCommands returns the list of commands to run on a // (remote) host to start the service. StartCommands() ([]string, error) }
Service represents a service in the init system running on a host.
type ServiceActions ¶
type ServiceActions interface { // Start will try to start the service. Start() error // Stop will try to stop the service. Stop() error // Install installs a service. Install() error // Remove will remove the service. Remove() error }
ServiceActions represents the actions that may be requested for an init system service.