Spring有this用於運行可執行彈簧引導罐的文檔。Spring Boot Jar文件由終端使用nohup啓動
但是,我從終端使用nohup linux命令運行這個jar,並且工作正常。
問題是:使用nohup或使用init.d服務,將有相同的結果爲應用程序?或者使用init.d總是正確的方式?
Spring有this用於運行可執行彈簧引導罐的文檔。Spring Boot Jar文件由終端使用nohup啓動
但是,我從終端使用nohup linux命令運行這個jar,並且工作正常。
問題是:使用nohup或使用init.d服務,將有相同的結果爲應用程序?或者使用init.d總是正確的方式?
他們做不同的事情。 nohup
運行一個命令,忽略HANGUP(HUP)信號。 init.d
用於在服務器啓動時自動運行命令(並在關機時按順序關閉命令)。如果您希望在系統重新啓動後自動運行彈簧引導應用程序,請將其置於init.d
- 如果要在每次重新啓動後手動啓動它,可以使用nohup
。
nohup
以一種不受掛機影響的方式運行命令,這可能會導致問題。許多程序被設計爲重新讀取其配置文件,重新啓動或在接收到HUP信號時執行其他操作(大多數服務/守護程序重新啓動或重新讀取配置)。除非您特別想忽略HUP信號,否則使用nohup
不是最佳解決方案。
可以以在後臺運行它的命令後使用&
,如果你想避免輸出到終端,您可以將輸出發送到/ dev/null的:
mycommand > /dev/null 2>&1 &
的2>&1
會將stderr發送到標準輸出,因此它會轉到/ dev/null。