systemd:このサービスが無効になった(死んだ)理由は何ですか?

systemd:このサービスが無効になった(死んだ)理由は何ですか?

私はこの単純なPythonスクリプトを保護したいと思います。

#!/usr/bin/python3
print('hello')

これは私のコマンドとステータスです。

root@gw-0317STLG0067 /lib/systemd/system # systemctl enable test.service
root@gw-0317STLG0067 /lib/systemd/system # systemctl daemon-reload
root@gw-0317STLG0067 /lib/systemd/system # systemctl start test.service
root@gw-0317STLG0067 /lib/systemd/system # systemctl status test.service
* test.service - My Script Service
   Loaded: loaded (/usr/lib/systemd/system/test.service; enabled; vendor preset:
   Active: inactive (dead) since Sun 2016-07-31 10:06:29 UTC; 4s ago
  Process: 20620 ExecStart=/root/test.py (code=exited, status=0/SUCCESS)
 Main PID: 20620 (code=exited, status=0/SUCCESS)

Jul 31 10:06:29 gw-0317STLG0067 systemd[1]: Started My Script Service.
Jul 31 10:06:29 gw-0317STLG0067 test.py[20620]: hello

これは私のサービススクリプトです。

[Unit]
Description=My Script Service
After=multi-user.target

[Service]
Type=simple
ExecStart = /root/test.py

[Install]
WantedBy=multi-user.target

なぜ死んで印刷された明細書を保護するために正確に何が起こるのですか?端末を爆破する必要がありますか?

ベストアンサー1

スクリプトは通常サービスで始まり、非常に迅速に終了します(コマンドが1つだけで、whileループや再実行に似たループがないため)。サービスがはるかに速く終了し、ステータスを要求できます。アクティブな状態を確認するには、いくつかのループ(ログをスパムしないようにタイムアウトを含む)を追加してください。

while True:
    print('hello')
    time.sleep(2)

journalctl -u test.service十分な内容を確認したら、systemctlでその内容を終了してください。

おすすめ記事