我有一台在UNIX上运行的服务器(Java)。
我正在尝试开发一些应用程序,它会“感知”服务器的状态是否已更改并通过邮件通知我。
我想知道我该怎么做?如果有某种事件或其他方式来感知变化,(顺便说一下,发送电子邮件不是问题)。
我正在思考将在无限循环中运行的Java代码并检查进程是否正在运行,但在我看来这是一个糟糕的方式。
任何想法都会被接受。 谢谢。
答案 0 :(得分:1)
您可以在java程序上设置计时器事件(使用cron或quartz)
在程序中,您可以检查特定进程是否正在运行..
你可以使用ps -e | grep java
或者你可以让java程序发送jmx消息,这些消息可用于跟踪应用程序的状态(这又取决于你是否可以更改服务器上的应用程序)。
答案 1 :(得分:0)
在启动之前准备好感知Java服务器的状态。我认为您应该查看Metrics项目,例如:http://metrics.codahale.com/
答案 2 :(得分:0)
您可以监控服务器进程ID以检查它是否仍在运行。这将无法检测服务器是否在某个地方处于无限循环中,这可以通过让服务器进程定期向文件写入时间戳来完成。如果时间戳大于间隔的两倍,则可将其视为已死。