システム内でデーモンとして実行されているプログラムを検出する方法はありますか?プログラムがsystemdデーモンとして実行されているかどうかを検出するにはどうすればよいですか?
sd_booted()
にsystemd APIは、システム全体がsystemdにによって起動された場合、検出に使用されるが、プログラム自体については何も言いません。
おかげ
システム内でデーモンとして実行されているプログラムを検出する方法はありますか?プログラムがsystemdデーモンとして実行されているかどうかを検出するにはどうすればよいですか?
sd_booted()
にsystemd APIは、システム全体がsystemdにによって起動された場合、検出に使用されるが、プログラム自体については何も言いません。
おかげ
あなたは、デーモンのサービスファイルに魔法の環境変数を設定し、この変数の見ることができます。
親プロセスIDを取得し、そのプロセスがsystemd
かどうかを確認します。
'ppid'(親プロセスID)を確認してください。 –
私はそれを検出することをお勧めしません。代わりに、プログラムの引数の規則をいくつか(たとえば、 '--started-from-systemd'を渡すと' systemd'によって開始され、systemdがその引数を渡すように設定すると仮定します)。 –
'/ proc//cgroup'の' systemd'エントリは、systemdによって実行されるサービスのために異なるようです(私は自分のラズベリーパイを素早く見ました)。 –