1 背景
Linux部署jar包
Java項(xiàng)目開發(fā)完畢打好jar包陪捷,就需要把該jar包上傳到Linux上去運(yùn)行坯门,如果老哥使用Windows當(dāng)我沒說?(? ???ω??? ?)?茎芋。
我們想到的可能就是通過 java -jar platform-scm-v108.jar 的方式來運(yùn)行jar包且叁,程序運(yùn)行正常,但是運(yùn)行期間窗口被鎖定啊易。當(dāng)我們關(guān)閉窗口或Ctrl + C打斷程序運(yùn)行時(shí)吁伺,程序就會退出;停止時(shí)會先通過 ps -ef | grep platform-scm-v108.jar 找出jar包的進(jìn)程租谈,然后再kill掉篮奄。這樣太繁瑣了,下面就根據(jù)線上經(jīng)驗(yàn)總結(jié)下jar優(yōu)雅啟動、停止的步驟:
2 Linux啟動jar包的方式
2.1 簡單后臺啟動
java -jar platform-scm-v108.jar --spring.profiles.active=product --server.port=8080 &
說明:& 表示后臺運(yùn)行宦搬,ssh窗口不被鎖定,但是關(guān)閉窗口時(shí)劫拗,程序還是會退出间校;
2.2 不掛斷后臺啟動
nohup java -jar platform-scm-v108.jar --spring.profiles.active=product --server.port=8080 &
說明:nohup 表示不掛斷運(yùn)行命令行,當(dāng)賬號退出或關(guān)閉終端時(shí)页慷,程序仍然運(yùn)行憔足,當(dāng)用 nohup 命令執(zhí)行作業(yè)時(shí),該作業(yè)的所有輸出被重定向到nohup.out的文件中酒繁,除非另外指定了輸出文件滓彰。
2.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文件中
3 停止jar包
3.1 簡單兩步走
ps -ef | grep platform-scm-v108.jar
# 找到對應(yīng)的進(jìn)程然后殺掉
kill -9 進(jìn)程號
說明 :分兩步,操作繁瑣州袒;
3.1 一條指令停止法
kill -9 `ps -ef | grep platform-scm-v108.jar | grep -v 'grep' `
說明:兩次使用管道揭绑,排除其他進(jìn)程,直接殺掉相應(yīng)的進(jìn)程郎哭。
4 線上環(huán)境腳本參考
4.1 啟動腳本
nohup java -jar nt-scm-module-system-2.4.3.jar --spring.profiles.active=product --server.port=8080 &
4.2 停止腳本
kill -9 `ps -ef | grep nt-scm-module-system-2.4.3.jar | grep -v 'grep' `
4.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