Init

Manages the state and configuration of init services. Support for:

  • SysVinit (/etc/init.d)
  • BSD init (/etc/rc.d)
  • Upstart
  • Systemctl

init.d

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

init.d(name, running=True, restarted=False, reloaded=False, enabled=None, command=None)
  • name: 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/<name> <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 init.d_enable operation.

init.d_enable

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

init.d_enable(name, start_priority=20, stop_priority=80, start_levels=(2, 3, 4, 5), stop_levels=(0, 1, 6))
  • name: 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

init.rc

Manage the state of BSD init (/etc/rc.d) service scripts.

init.rc(name, running=True, restarted=False, reloaded=False, command=None, enabled=None)
  • name: 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
  • command: custom command to pass like: /etc/rc.d/<name> <command>
  • enabled: whether this service should be enabled/disabled on boot

init.systemd

Manage the state of systemd managed services.

init.systemd(name, running=True, restarted=False, reloaded=False, command=None, enabled=None)
  • name: 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
  • command: custom command to pass like: /etc/rc.d/<name> <command>
  • enabled: whether this service should be enabled/disabled on boot

init.upstart

Manage the state of upstart managed services.

init.upstart(name, running=True, restarted=False, reloaded=False, command=None, enabled=None)
  • name: 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
  • command: custom command to pass like: /etc/rc.d/<name> <command>
  • enabled: whether this service should be enabled/disabled on boot
Enabling/disabling services:
Upstart jobs define runlevels in their config files - as such there is no way to edit/list these without fiddling with the config. So pyinfra simply manages the existence of a /etc/init/<service>.override file, and sets its content to “manual” to disable automatic start of services.