systemdで実行されているかどうかはわかりますか? [コピー]

systemdで実行されているかどうかはわかりますか? [コピー]

systemdにPythonサービスがあります。 systemdで実行している場合はロギングにsyslogPythonモジュールを使用し、そうでない場合はPythonモジュールを使用したいと思います。 systemdで実行されていることを確認するための信頼できる方法はありますか、それとも良い方法がありますか?

ベストアンサー1

systemdPIDは常に1なので、親PIDが1であることを確認できます。

import psutil, os
if psutil.Process(os.getpid()).ppid() == 1:
    # We are using systemd

ただし、サービスが利用できない場合でも、ユーザーがsyslogを使用することを選択できるようにコマンドラインフラグを指定してサービスを介して渡すことをお勧めします--syslogsystemdsystemd

おすすめ記事