1
サービスとして実行されているPythonスクリプトがあります。ディスクに書き込みます。ユーザーがサービスのsystemctl stopを呼び出すと、私は自分のやり方でこのコマンドを処理して、ファイルの破損のリスクを減らしたいと考えています。Pythonがsystemctlをどのように処理できますか?
どのように私はsystemctlの停止コマンドをキャッチできますか?
は/ usr/libに/ systemdに/システムでの私のファイルは次のとおりです。
[Unit]
Description=foo
[Service]
Type=simple
ExecStart=/usr/bin/python /srv/go.py
User=jon
Restart=always
[Install]
WantedBy=graphical.target
私のPythonスクリプトは次のとおりです。
#!/usr/bin/python
import time
import datetime
import threading
def worker():
while True:
with open('/tmp/go.txt', 'a') as f:
s = str(datetime.datetime.utcnow()) + '\n'
f.write(s)
print(s)
time.sleep(1)
if __name__=='__main__':
t = threading.Thread(target=worker)
t.start()
おそらく、これはあなたの質問に役立つでしょうか? https://stackoverflow.com/questions/18499497/how-to-process-sigterm-signal-gracefully – csim
またはhttps://stackoverflow.com/questions/1112343/how-do-i-capture-sigint-in -python – languitar