簡體   English   中英

如何正確啟動Jetty

[英]How To Start Jetty Properly

這可能是一個非常愚蠢的問題,因為似乎沒有人有這個問題。 在Jetty文檔中,它說jar -jar start.jar啟動Jetty,它確實如此。 但是當我關閉我的SSH控制台時,顯然它已經死了。

我該如何正確運行?

這是否可以在生產機器上運行,該生產機器實際上將在Jetty下運行應用程序? 我認為情況就是這樣,因為你要求正確啟動它。

如果是這樣,你需要一個適當的工藝監督體系,如runitdaemontools的monit的暴發戶systemd ,或好醇” 的SysV init.d中 (如提及W / 梗概 )。 使用哪種方法取決於您的偏好,業務需求以及您的底層操作系統。

我使用並喜歡runit 它建立在堅實的原則 (daemontools) 之上 ,對於我喜歡的發行版(Debian和Ubuntu),它由作者自己很好地 打包

盡管在其他答案中被推薦,並在評論中提到,在screen / tmux中開始長時間運行的過程,或者通過nohup是次優的。 您無法真正控制該過程。 如果它死了它將不會重新啟動。 您必須手動查找其PID,否則手動管理服務。 你必須做更多的手工工作來獲取日志輸出(重定向,發送到一些隨機文件等)。 您不能可靠地使其依賴於其他進程,或者讓其他進程依賴於它。 體面的過程監控系統默認為您提供所有這些功能。

如果您的目標完全不同,那么請更新問題以更具體地說明您的用例。

java -jar start.jar & 

(在后台運行)也應該可以工作,雖然日志記錄不會像w / nohup一樣好轉。

這是因為殺死啟動進程的shell(例如通過注銷)會殺死進程,除非它們是后台進程。 屏幕也起作用,因為它在后台運行,並且屏幕有效地保持會話在您附加/分離時運行。

如果您使用的是* nix系統,最好的解決方案可能是使用/etc/init.d的腳本(或者系統的等效系統)。 有一個在https://gist.github.com/404672

否則,從命令行使用nohupscreen將至少讓您在注銷時不會死亡。 因此,將使用&將過程置於后台。

一種方法是使用nohup

nohup java -jar start.jar

這具有將stdout和stderr寫入文件的優點

另一種方法是使用screen

暫無
暫無

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

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