systemd 시작 스크립트가 작동하지 않습니다

systemd 시작 스크립트가 작동하지 않습니다

start 또는 stop args를 사용하여 Python 스크립트를 호출하는 systemd 시작 스크립트를 만들었습니다. 스크립트는 셸에서 수동으로 실행하면 작동하지만 systemctl start foo 또는 systemctl stop foo를 실행하면 작동하지 않습니다.

[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

쉘에서 /opt/foo/scripts/init_backends.py start를 호출하면 제대로 작동합니다.

답변1

다음 설정을 사용할 때 작동하기 시작했습니다. StandardOutput=tty가 핵심이라고 생각합니다.

[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

관련 정보