如何在Java中监听Process Up或Down事件?

时间:2017-07-06 12:25:12

标签: java linux process dbus systemd

我有一个使用Systemctl运行的进程,使用Restart = always配置它 这样即使进程崩溃,它也会自动重启而无需人工干预。当该进程重新启动时,我想在我的java代码中执行一些操作。我不希望民意调查过程。无论如何要实现这个目标吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

systemd有一个D-Bus API,可用于在设备更改状态时接收事件通知,包括更改其ActiveState属性,告知您当前是否正在运行。有关详细信息,请参阅this answer on Unix & Linux StackExchange

要从Java程序使用此API,您需要一个用于Java的D-Bus库。看起来有一个DBus-Java library,虽然它在很长一段时间内没有更新。或者,您可以让Java程序调用命令行dbus-send和/或dbus-monitor程序并读取它们的输出。