[英]How To Start Jetty Properly
這可能是一個非常愚蠢的問題,因為似乎沒有人有這個問題。 在Jetty文檔中,它說jar -jar start.jar
啟動Jetty,它確實如此。 但是當我關閉我的SSH控制台時,顯然它已經死了。
我該如何正確運行?
這是否可以在生產機器上運行,該生產機器實際上將在Jetty下運行應用程序? 我認為情況就是這樣,因為你要求正確啟動它。
如果是這樣,你需要一個適當的工藝監督體系,如runit , daemontools的 , 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 。
否則,從命令行使用nohup
或screen
將至少讓您在注銷時不會死亡。 因此,將使用&
將過程置於后台。
一種方法是使用nohup
nohup java -jar start.jar
這具有將stdout和stderr寫入文件的優點
另一種方法是使用screen
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.