Java項目開發完畢打好jar包,就需要把該jar包上傳到Linux上去運行,如果老哥使用Windows當我沒說⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄。
我們想到的可能就是通過 java -jar platform-scm-v108.jar 的方式來運行jar包,程序運行正常,但是運行期間窗口被鎖定。當我們關閉窗口或Ctrl + C打斷程序運行時,程序就會退出;停止時會先通過 ps -ef | grep platform-scm-v108.jar 找出jar包的進程,然後再kill掉。這樣太繁瑣了,下面就根據線上經驗總結下jar優雅啟動、停止的步驟:
1 Linux啟動jar包的方式
1.1 簡單後台啟動
java -jar platform-scm-v108.jar --spring.profiles.active=product --server.port=8080 &
說明:& 表示後台運行,ssh窗口不被鎖定,但是關閉窗口時,程序還是會退出;
1.2 不掛斷後台啟動
nohup java -jar platform-scm-v108.jar --spring.profiles.active=product --server.port=8080 &
說明:nohup 表示不掛斷運行命令行,當賬號退出或關閉終端時,程序仍然運行,當用 nohup 命令執行作業時,該作業的所有輸出被重定向到nohup.out的文件中,除非另外指定了輸出文件。
1.3 不掛斷後台啟動並重定向日誌
nohup java -jar platform-scm-v108.jar --spring.profiles.active=product --server.port=8080 >/data/platform/log/platform-scm.txt &
說明:>
/data/platform/log/platform-scm.txt platform-scm.txt文件中
2 停止jar包
2.1 簡單兩步走
ps -ef | grep platform-scm-v108.jar
# 找到對應的進程然後殺掉
kill -9 進程號
說明:分兩步,操作繁瑣;
2.2 一條指令停止法
kill -9 `ps -ef | grep platform-scm-v108.jar | grep -v 'grep' `
說明:兩次使用管道,排除其他進程,直接殺掉相應的進程。
3 線上環境腳本參考
3.1 啟動腳本
nohup java -jar nt-scm-module-system-2.4.3.jar --spring.profiles.active=product --server.port=8080 &
3.2 停止腳本
kill -9 `ps -ef | grep nt-scm-module-system-2.4.3.jar | grep -v 'grep' `
3.3 重啟腳本
kill -9 `ps -ef | grep nt-scm-module-system-2.4.3.jar | grep -v 'grep' `
sleep 2
nohup java -jar nt-scm-module-system-2.4.3.jar --spring.profiles.active=product --server.port=8080 &
sleep 2
tail -f nohup.out
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/233254.html