Sysvinit Operations

Manage sysvinit services (/etc/init.d).

Facts used in these operations: files.FindLinks, sysvinit.InitdStatus, server.LinuxDistribution.

sysvinit.enable

Manually enable /etc/init.d scripts by creating /etc/rcX.d/Y links.

sysvinit.enable(
    service, start_priority=20, stop_priority=80, start_levels=(2, 3, 4, 5),
    stop_levels=(0, 1, 6),
)
  • service: name of the service to enable
  • start_priority: priority to start the service
  • stop_priority: priority to stop the service
  • start_levels: which runlevels should the service run when enabled
  • stop_levels: which runlevels should the service stop when enabled

Example:

init.d_enable(
    name="Finer control on which runlevels rsyslog should run",
    service="rsyslog",
    start_levels=(3, 4, 5),
    stop_levels=(0, 1, 2, 6),
)

sysvinit.service

Manage the state of SysV Init (/etc/init.d) services.

sysvinit.service(service, running=True, restarted=False, reloaded=False, enabled=None, command=None)
  • service: name of the service to manage
  • running: whether the service should be running
  • restarted: whether the service should be restarted
  • reloaded: whether the service should be reloaded
  • enabled: whether this service should be enabled/disabled
  • command: command (eg. reload) to run like: /etc/init.d/<service> <command>
Enabled:

Because managing /etc/rc.d/X files is a mess, only certain Linux distributions support enabling/disabling services:

  • Ubuntu/Debian (update-rc.d)
  • CentOS/Fedora/RHEL (chkconfig)
  • Gentoo (rc-update)

For other distributions and more granular service control, see the sysvinit.enable operation.

Example:

sysvinit.service(
    name="Restart and enable rsyslog",
    service="rsyslog",
    restarted=True,
    enabled=True,
)