salt.modules.upstart

Module for the management of upstart systems. The Upstart system only supports service starting, stopping and restarting.

Currently (as of Ubuntu 12.04) there is no tool available to disable Upstart services (like update-rc.d). This[1] is the recommended way to disable an Upstart service. So we assume that all Upstart services that have not been disabled in this manner are enabled.

But this is broken because we do not check to see that the dependent services are enabled. Otherwise we would have to do something like parse the output of "initctl show-config" to determine if all service dependencies are enabled to start on boot. For example, see the "start on" condition for the lightdm service below[2]. And this would be too hard. So we wait until the upstart developers have solved this problem. :) This is to say that an Upstart service that is enabled may not really be enabled.

Also, when an Upstart service is enabled, should the dependent services be enabled too? Probably not. But there should be a notice about this, at least.

[1] http://upstart.ubuntu.com/cookbook/#disabling-a-job-from-automatically-starting

[2] example upstart configuration file:

lightdm
emits login-session-start
emits desktop-session-start
emits desktop-shutdown
start on ((((filesystem and runlevel [!06]) and started dbus) and (drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1 or stopped udev-fallback-graphics)) or runlevel PREVLEVEL=S)
stop on runlevel [016]

警告

This module should not be used on Red Hat systems. For these, the rh_service module should be used, as it supports the hybrid upstart/sysvinit system used in RHEL/CentOS 6.

salt.modules.upstart.available(name)

Returns True if the specified service is available, otherwise returns False.

CLI 范例:

salt '*' service.available sshd
salt.modules.upstart.disable(name, **kwargs)

Disable the named service from starting on boot

CLI 范例:

salt '*' service.disable <service name>
salt.modules.upstart.disabled(name)

Check to see if the named service is disabled to start on boot

CLI 范例:

salt '*' service.disabled <service name>
salt.modules.upstart.enable(name, **kwargs)

Enable the named service to start at boot

CLI 范例:

salt '*' service.enable <service name>
salt.modules.upstart.enabled(name, **kwargs)

Check to see if the named service is enabled to start on boot

CLI 范例:

salt '*' service.enabled <service name>
salt.modules.upstart.force_reload(name)

Force-reload the named service

CLI 范例:

salt '*' service.force_reload <service name>
salt.modules.upstart.full_restart(name)

Do a full restart (stop/start) of the named service

CLI 范例:

salt '*' service.full_restart <service name>
salt.modules.upstart.get_all()

Return all installed services

CLI 范例:

salt '*' service.get_all
salt.modules.upstart.get_disabled()

Return the disabled services

CLI 范例:

salt '*' service.get_disabled
salt.modules.upstart.get_enabled()

Return the enabled services

CLI 范例:

salt '*' service.get_enabled
salt.modules.upstart.missing(name)

The inverse of service.available. Returns True if the specified service is not available, otherwise returns False.

CLI 范例:

salt '*' service.missing sshd
salt.modules.upstart.reload(name)

Reload the named service

CLI 范例:

salt '*' service.reload <service name>
salt.modules.upstart.restart(name)

Restart the named service

CLI 范例:

salt '*' service.restart <service name>
salt.modules.upstart.start(name)

Start the specified service

CLI 范例:

salt '*' service.start <service name>
salt.modules.upstart.status(name, sig=None)

Return the status for a service, returns a bool whether the service is running.

CLI 范例:

salt '*' service.status <service name>
salt.modules.upstart.stop(name)

Stop the specified service

CLI 范例:

salt '*' service.stop <service name>