2012-02-28 68 views
0

我有一臺運行在UNIX上的服務器(Java)。查找UNIX上是否運行進程(服務器)

我試圖開發一些應用程序,將「感知」,如果服務器的狀態已被更改,並通過郵件通知我。

我想知道我該怎麼辦?如果有某種事件或其他方式來感知變化,(順便說一句,發送電子郵件不是問題)。

我在考慮Java代碼,它將在無限循環中運行,並檢查進程是否正在運行,但在我看來,這是一種糟糕的方式。

任何想法都將被接受。 謝謝。

+0

爲什麼要重塑冶金學? [Nagios](http://www.nagios.org/)是天賜之物。 – Nishant 2012-02-28 10:20:08

回答

1

你可以在程序(使用cron或quartz要麼)

設置上的Java程序的計時器事件,您可以檢查,看是否有特定的進程正在運行.. 可以使用ps -e | grep java

,或者你可以讓Java程序輸出量可用於跟蹤應用程序的狀態(這同樣取決於你是否能更改服務器上的應用程序),JMX消息。

0

您可以監視服務器進程ID以檢查它是否仍在運行。這不會檢測到服務器是否處於無限循環中,這可以通過讓服務器進程定期向文件寫入時間戳來完成。如果時間戳超過時間間隔的兩倍,則可以認爲它已經死亡。

相關問題