服務器項目部署——後臺啓動、關閉、替換踩坑

  • 博主最近在更新自己的項目的時候,打包好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進程,而是
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章