- 博主最近在更新自己的項目的時候,打包好jar換下之前的jar,然後準備重啓項目,遇到了些問題,網上關於這些說的不是很細節,故寫篇博客記錄下。
- 我們後臺啓動項目一般是:
nohup java -jar 包名.jar >log.txt &
。這種方式會在jar目錄下生成log.txt。這裏我們先查看當前項目是否還在運行:ps -ef | grep blog-backend-0.0.1-SNAPSHOT.jar
,可以看到如下結果(例圖):
- grep是默認就會有的,不用管,java字樣的就是我們正在跑的項目,替換前需要做好日誌備份,由於只是個人項目,其他細節就不多說了。我們準備完畢後殺死該進程:
kill 32733
或者kill -9 32733
,這串數字是項目進程對應的PID。 - 殺掉後,再次執行
ps -ef | grep blog-backend-0.0.1-SNAPSHOT.jar
查看是否只有grep了,又或者都沒有了,那麼此時就可以替換上新的項目jar包了:nohup java -jar blog-backend-0.0.1-SNAPSHOT.jar > /log/blog_v1.3.txt 2>&1 &
,這裏可能會報nohup: redirecting stderr to stdout
有關錯誤,請檢查,你的第一個“>”後邊跟的是不是你的日誌目錄,還有最好把之前那個項目目錄下生成的nohup.txt(如果有的話,我這裏是log.txt)備份並刪除,這裏這個尖括號作用是將打印信息重定向到日誌文件。 - 這裏解釋下第二個">",左邊的2代表的是標準錯誤——stderr,左邊也可以是1——標準輸出stdout,2/1> 表示將標準錯誤/輸出重定向,右邊可以是上邊&1或者&2,分別表示重定向到標準輸出和標準錯誤,後邊也可以跟文件名:
- 2> stderr.log
- 1> stdout.log
這裏不再細談
- 注意,最後邊的"&"不能掉,它的前邊要有一個空格,請檢查
- 關於kill進程,我不知道有沒有更好的不kill進程,而是
服務器項目部署——後臺啓動、關閉、替換踩坑
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.