Systemd Operations

Manage systemd services.

Facts used in these operations: systemd.SystemdEnabled, systemd.SystemdStatus.

systemd.daemon_reload

Stateless operation

This operation will always execute commands and is not idempotent.

Reload the systemd daemon to read unit file changes.

systemd.daemon_reload(user_mode=False, machine: 'str | None' = None, user_name: 'str | None' = None,
     **kwargs,
)
  • user_mode: whether to use per-user systemd (systemctl –user) or not

  • machine: the machine name to connect to

  • user_name: connect to a specific user’s systemd session

Note

This operation also inherits all global arguments.

systemd.service

Manage the state of systemd managed units.

systemd.service(
     service: 'str',
     running=True,
     restarted=False,
     reloaded=False,
     command: 'str | None' = None,
     enabled: 'bool | None' = None,
     daemon_reload=False,
     user_mode=False,
     machine: 'str | None' = None,
     user_name: 'str | None' = None,
     **kwargs,
)
  • service: name of the systemd unit to manage

  • running: whether the unit should be running

  • restarted: whether the unit should be restarted

  • reloaded: whether the unit should be reloaded

  • command: custom command to pass like: /etc/rc.d/<name> <command>

  • enabled: whether this unit should be enabled/disabled on boot

  • daemon_reload: reload the systemd daemon to read updated unit files

  • user_mode: whether to use per-user systemd (systemctl –user) or not

  • machine: the machine name to connect to

  • user_name: connect to a specific user’s systemd session

Examples:

from pyinfra.operations import systemd
systemd.service(
    name="Restart and enable the dnsmasq service",
    service="dnsmasq.service",
    running=True,
    restarted=True,
    enabled=True,
)

systemd.service(
    name="Enable logrotate timer",
    service="logrotate.timer",
    running=True,
    enabled=True,
)

Note

This operation also inherits all global arguments.