【问题标题】:How to listen to Process Up or down events in Java?如何在 Java 中监听 Process Up 或 Down 事件?
【发布时间】:2017-12-10 10:57:51
【问题描述】:

我有一个使用 Systemctl 运行的进程,将其配置为 Restart=always 这样即使进程崩溃,它也会自行重启而无需人工干预。当该进程重新启动时,我想在我的 java 代码中执行一些操作。我不想轮询这个过程。有没有办法做到这一点?

提前致谢。

【问题讨论】:

  • 我认为没有。您要么轮询进程,要么以某种方式轮询操作系统。如果进程属于你,那么也许你可以让进程将日志写入文件,并在Java中使用WatchService

标签: java linux process dbus systemd


【解决方案1】:

systemd 有一个D-Bus API,您可以使用它在单元更改状态时接收事件通知,包括对其ActiveState 属性的更改,告诉您它当前是否正在运行。请参阅this answer on Unix & Linux StackExchange 了解更多信息。

要在 Java 程序中使用此 API,您需要一个用于 Java 的 D-Bus 库。好像有一个DBus-Java library,虽然很久没更新了。或者,您可以让您的 Java 程序调用命令行dbus-send 和/或dbus-monitor 程序并读取它们的输出。

【讨论】:

    猜你喜欢
    • 2016-02-04
    • 1970-01-01
    • 2019-07-05
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多