是否可以在 systemd 服务崩溃/重新启动时监听信号?

是否可以在 systemd 服务崩溃/重新启动时监听信号?

这是一个关于 systemd 服务的新手问题,但假设我们有两个 systemd 守护进程,对于其中一个守护进程来说,了解另一个守护进程是否已崩溃或重新启动很重要。是否可以收听此事件?如果可以,如何收听?

答案1

我通常会使用普通的 IPC。两个进程之间直接共享内存或套接字。

如果您的程序是用 C 编写的,则可以使用 systemd 的#include <systemd/sd-bus.h>.这是 systemd 的 dbus 接口的包装器。您可以从这里监视单位。您可以订阅该单元的“PropertiesChanged”成员,每当任何属性发生更改时都会发出该成员。当该信号发生变化时,查询“ActiveState”成员。

这里有一个很好的例子:

https://unix.stackexchange.com/a/527350/272848

相关内容