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