查找进程(服务器)是否在unix上运行

时间:2012-02-28 10:12:33

标签: java unix java-ee

我有一台在UNIX上运行的服务器(Java)。

我正在尝试开发一些应用程序,它会“感知”服务器的状态是否已更改并通过邮件通知我。

我想知道我该怎么做?如果有某种事件或其他方式来感知变化,(顺便说一下,发送电子邮件不是问题)。

我正在思考将在无限循环中运行的Java代码并检查进程是否正在运行,但在我看来这是一个糟糕的方式。

任何想法都会被接受。 谢谢。

3 个答案:

答案 0 :(得分:1)

您可以在java程序上设置计时器事件(使用cron或quartz

在程序中,您可以检查特定进程是否正在运行.. 你可以使用ps -e | grep java

或者你可以让java程序发送jmx消息,这些消息可用于跟踪应用程序的状态(这又取决于你是否可以更改服务器上的应用程序)。

答案 1 :(得分:0)

在启动之前准备好感知Java服务器的状态。我认为您应该查看Metrics项目,例如:http://metrics.codahale.com/

答案 2 :(得分:0)

您可以监控服务器进程ID以检查它是否仍在运行。这将无法检测服务器是否在某个地方处于无限循环中,这可以通过让服务器进程定期向文件写入时间戳来完成。如果时间戳大于间隔的两倍,则可将其视为已死。

相关问题