簡體   English   中英

使用procrun檢查服務是否正在運行

[英]Check service is running with procrun

我正在使用prunsrv創建Windows服務。 我想問您是否可以查詢進程的狀態(是否正在運行,已停止)或是否存在進程。 我也想用Java程序讀取pid文件的內容。

是的,有一個技巧:在服務的啟動代碼中創建本地套接字。 如果在創建套接字時遇到錯誤,您將知道該服務的實例已在運行。

如果要檢查該服務是否仍在運行,可以連接到套接字。 如果失敗,則該過程不存在。

而且,您可以通過此套接字返回服務的PID,因此“監視”程序不需要知道日志路徑和PID文件名。 而且,如果您實現啟動/停止方法,您甚至可以告訴監視器服務狀態。

這樣的最大優點是,當您的服務由於任何原因終止時,操作系統將確保套接字已關閉。 第二個優點是,它獨立於操作系統運行-如果您需要將其移至Linux或Mac,則無需更改代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM