El script de inicio de systemd no funciona

El script de inicio de systemd no funciona

Creé una secuencia de comandos de inicio systemd que simplemente llama a una secuencia de comandos de Python con argumentos de inicio o detención. La secuencia de comandos funciona si se ejecuta manualmente desde el shell, pero cuando ejecuto systemctl start foo o systemctl stop foo no funciona.

[Unit]
Description=foo Backends
After=network.target remote-fs.target nss-lookup.target

[Service]
ExecStart=/opt/foo/scripts/init_backends.py start
ExecStop=/opt/foo/scripts/init_backends.py stop
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Tenga en cuenta que llamar a /opt/foo/scripts/init_backends.py start desde el shell funciona bien

Respuesta1

Comenzó a funcionar al usar la siguiente configuración. Creo que StandardOutput=tty fue la clave

[Unit]
Description=foo Backends
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/opt/foo/scripts/init_backends.py start
ExecStop=/opt/foo/scripts/init_backends.py stop
User=root
Group=root
TimeoutSec=300
StandardOutput=tty
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

información relacionada