![systemdで実行されているかどうかはわかりますか? [コピー]](https://linux33.com/image/86988/systemd%E3%81%A7%E5%AE%9F%E8%A1%8C%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%8B%E3%81%A9%E3%81%86%E3%81%8B%E3%81%AF%E3%82%8F%E3%81%8B%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
systemdにPythonサービスがあります。 systemdで実行している場合はロギングにsyslog
Pythonモジュールを使用し、そうでない場合はPythonモジュールを使用したいと思います。 systemdで実行されていることを確認するための信頼できる方法はありますか、それとも良い方法がありますか?
答え1
systemd
PIDは常に1なので、親PIDが1であることを確認できます。
import psutil, os
if psutil.Process(os.getpid()).ppid() == 1:
# We are using systemd
ただし、サービスが利用できない場合でも、ユーザーがsyslogを使用することを選択できるようにコマンドラインフラグを指定してサービスを介して渡すことをお勧めします--syslog
。systemd
systemd