1. 程式人生 > >用nohup命令解決SpringBoot/java -jar專案執行一段時間停止執行的問題

用nohup命令解決SpringBoot/java -jar專案執行一段時間停止執行的問題

問題背景

手頭有一個springboot專案,放在測試伺服器跑,但是隔三差五的,就會中斷,很好奇到底怎麼回事。

其實這就是SpringBoot專案執行一段時間停止執行java -jar專案執行一段時間停止java程式執行一段時間自動關閉 的問題了。

解決方案

java -jar xxxx-web-0.0.1-SNAPSHOT.jar >xxxx.log& 啟動後項目看似脫離終端了,其實還是受終端影響,斷開xshell之後,專案過段時間就會掛了。GG。

把啟動語句加上nohup後臺執行就可以了。

nohup是什麼

用途:nohup是linux一個命令,不掛斷地執行,或者理解為後臺執行。

範例:

#docker
nohup docker-compose up > /usr/local/logs/microservice-tcbj-yytsg/log.txt &

#springboot
nohup java -jar microservice-web-0.0.1-SNAPSHOT.jar >microservice.log&

語法:nohup Command [ Arg … ] [ & ]

  無論是否將 nohup 命令的輸出重定向到終端,輸出都將附加到當前目錄的 nohup.out 檔案中。

  如果當前目錄的 nohup.out 檔案不可寫,輸出重定向到 $HOME/nohup.out 檔案中。

  如果沒有檔案能建立或開啟以用於追加,那麼 Command 引數指定的命令不可呼叫。

退出狀態:該命令返回下列出口值:      126 可以查詢但不能呼叫 Command 引數指定的命令。      127 nohup 命令發生錯誤或不能查詢由 Command 引數指定的命令。      否則,nohup 命令的退出狀態是 Command 引數指定命令的退出狀態。