これはsystemdサービスに関する初心者の質問ですが、2つのsystemdデーモンがあると仮定すると、その1つが他のデーモンがクラッシュしたか再起動したかどうかを知ることが重要です。このイベントを聴くことはできますか?それでは、どうやって聞くことができますか?
答え1
私は通常、一般的なIPCを使用しています。 2つのプロセス間でメモリまたはソケットを直接共有します。
プログラムがCで書かれている場合は、systemdを使用できます#include <systemd/sd-bus.h>
。これはsystemdのdbusインターフェースを囲むラッパーです。ここで単位を監視できます。プロパティが変更されるたびにエクスポートされるユニットの「PropertiesChanged」メンバーを購読できます。このシグナルが変更されると、「ActiveState」メンバーを照会します。
良い例は次のとおりです。