我將Java REST服務從'傳統'方式轉換爲一個簡單的嵌入式設置,作爲一個符合servlet的.war部署到多租戶應用程序服務器(Tomcat) - 其中有一個簡單的Java啓動嵌入式http服務器的主類(Grizzly + Jersey)。一個缺失的部分是服務包裝。我可以通過執行'java -jar myservice.jar'來手動運行該服務,但是我希望將其作爲適當的Linux後臺服務來實現。如何從Bash shell腳本中正常關閉Java服務?
通常,這是通過一個簡單的Bash shell腳本完成的,該腳本放在/etc/init.d中。我見過一些超級簡單的例子,但它們通過進程kill實現關閉,而不是正常關機。我也看到了一些商業工具來處理這個問題,但這個任務看起來太簡單了,以至於不能涉及商業工具。
我的第一個猜測是在第二個監聽關閉請求的端口上添加一個單獨的超級簡單REST服務,並讓/etc/init.d Bash shell腳本以這種方式發送關閉請求。
這個問題有更好或更標準的解決方案嗎?