这是一个关于 systemd 服务的新手问题,但假设我们有两个 systemd 守护进程,对于其中一个守护进程来说,了解另一个守护进程是否已崩溃或重新启动很重要。是否可以收听此事件?如果可以,如何收听?
答案1
我通常会使用普通的 IPC。两个进程之间直接共享内存或套接字。
如果您的程序是用 C 编写的,则可以使用 systemd 的#include <systemd/sd-bus.h>
.这是 systemd 的 dbus 接口的包装器。您可以从这里监视单位。您可以订阅该单元的“PropertiesChanged”成员,每当任何属性发生更改时都会发出该成员。当该信号发生变化时,查询“ActiveState”成员。
这里有一个很好的例子: