2015-10-26 18 views
3

我正在研究Apache Daemon以幫助我使用Java應用程序,並且我只想獲得一些關於可能的想法/提示。如果Apache Daemon被強制關閉,可以用來重新啓動Java應用程序嗎?

我想創建一個簡化的應用程序,顯示某種故障保險能力。應用程序將按順序執行4個步驟(假設它在每個步驟中只打印一個簡單的文本文件,如步驟1爲「A」,步驟2爲「B」等),並且我希望以便能夠強制關閉JVM,然後讓它自動重新啓動Java應用程序並恢復打印輸出(想象它就像一個小孩拔下電視機上的插頭,然後它自己再次打開)。

這是否可以通過Apache Daemon完成?如果是這樣,我將如何自動化?我是否需要在操作系統級別附加一些第三方程序(如一個簡單的C程序本身可以監控流量?)。

在這個階段,我只是在尋找指針,因爲我意識到我不知道我會做什麼。我更喜歡Windows,但我也有一臺Mac,如果更好,我會開放使用Mac(我知道Linux有一些獨特的工具/能力)。任何提示/想法表示讚賞。

So far, I have tried using this tutorial here for help, which has been useful but not as thorough as I need.

+1

如果這是一個後臺作業,運行作爲Windows服務,然後重新啓動,在故障被內置到Windows,你只需要在服務的設置來定義它。對於「簡歷」邏輯,您必須使用Java進行編碼,並不斷更新外部資源(同步)以確保狀態已保存,因爲使用任務管理器查殺進程導致的強制關閉不會運行任何關閉掛鉤。 – Andreas

+0

@Andreas - 好了解。我打算使用日誌文件來保存狀態。謝謝 ! – Coffee

+0

@Andreas - 關於「不斷更新外部資源(同步)以確保狀態已保存」,您認爲簡單的文本日誌文件就足夠了嗎?或者我需要使用類似MySQL的東西? – Coffee

回答

3

在Windows上,我最後一次檢查它沒有被procrun(commmons守護進程),而是由Windows服務管理管理。

你可能需要守護程序安裝

  • SC故障%SERVICE_NAME%復位= 60行動=重啓後配置該服務恢復/ 30000
  • SC failureflag%SERVICE_NAME%1

%SERVICE_NAME%是...您的服務名稱

恢復邏輯應該在您的應用程序中

編輯:加入更多內容

對於Windows上的服務安裝見https://commons.apache.org/proper/commons-daemon/procrun.html

(手動或使用CMD腳本)發出命令時

例如:

set SERVICE_NAME=myService 
prunsrv //IS//%SERVICE_NAME% --DisplayName="Test Service" \ 
    --Install=prunsrv.exe --Jvm=auto --StartMode=jvm --StopMode=jvm \ 
    --StartClass=org.apache.SomeStartClass --StartParams=arg1;arg2;arg3 \ 
    --StopClass=org.apache.SomeStopClass --StopParams=arg1#arg2 

服務安裝後添加恢復設置

sc failure %SERVICE_NAME% reset= 60 actions= restart/30000 
sc failureflag %SERVICE_NAME% 1 
+0

請您詳細說明一下 - 「在守護進程安裝後配置服務恢復」? – Coffee

相關問題