Linux 下通過(guò) java 命令啟動(dòng) jar 包常見方式小結(jié)
Linux 下通過(guò) java 命令啟動(dòng) jar 包的幾種常見方式
一、后臺(tái)啟動(dòng)jar包命令
方法一:直接啟動(dòng) jar 包服務(wù)
# 當(dāng)前ssh窗口不被鎖定,直接關(guān)閉或可按CTRL + C打斷程序運(yùn)行,程序也會(huì)退出。 java -jar app.jar
方法二:后臺(tái)啟動(dòng) jar 包服務(wù)
# 當(dāng)前ssh窗口不被鎖定,但是當(dāng)窗口關(guān)閉時(shí),程序中止運(yùn)行。&代表在后臺(tái)運(yùn)行。 java -jar app.jar &
方法三:后臺(tái)不掛斷啟動(dòng)
# 用 nohub 命令啟動(dòng) jar 包,是在后臺(tái)不掛斷運(yùn)行,關(guān)閉終端窗口或者 CTRL + C 命令也不會(huì)終止程序。 # 當(dāng)用 nohub命令啟動(dòng) jar 包的時(shí)候,如果不指定日志輸出文件,則所有的輸出都會(huì)被重定向到 nohub.out 的文件中。 nohup java -jar app.jar &
方式四:指定日志輸出的啟動(dòng)
# 通過(guò) >log.out 命令,將程序的日志輸出重定向到 log.out 文件中。如果不指定日志輸出文件,則會(huì)輸出到 nohub 命令默認(rèn)的輸出文件,nohub.out 文件中 nohup java -jar app.jar >log.out &
方式五:指定配置文件啟動(dòng)
# 通過(guò) -Dspring profiles.active=pro 來(lái)指定配置文件,啟動(dòng)的的是application-prod.yml 或者 application-prod.properties nohup java -jar app.jar -Dspring.profiles.active=prod >log.out &
方式六:指定配置文件,使用系統(tǒng)默認(rèn)的log配置,不另行指定日志輸入
# 啟動(dòng)/opt/app/目錄下的 app.jar ,配置文件使用 prod,日志使用配置文件默認(rèn)配置,不單獨(dú)指定。 nohup java -jar /opt/app/app.jar -Dspring.profiles.active=prod >/dev/null 2>&1 &
常見的文件描述符有如下:
0 :stdin(標(biāo)準(zhǔn)輸入)
1 :stdout(標(biāo)準(zhǔn)輸出)
2 :stderr(標(biāo)準(zhǔn)錯(cuò)誤)
> 代表重定向操作。將標(biāo)準(zhǔn)錯(cuò)誤重定向到/dev/null ,即不輸出錯(cuò)誤信息。 >/dev/null 2>&1 & : 等同于 1>/dev/null 2>&1 &, 即把標(biāo)準(zhǔn)輸出重定向到/dev/null,并且把標(biāo)準(zhǔn)錯(cuò)誤2重定向標(biāo)準(zhǔn)輸出1,即標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤都輸出到 /dev/null。
方式七:指定分配系統(tǒng)資源大小
# 指定分配系統(tǒng)資源大小 nohup java -Xms1024m -Xmx1024m -jar app.jar -Dspring.profiles.active=prod >log.out &
方式八:解決中文編碼 造成啟動(dòng)異常
# 解決中文編碼 造成啟動(dòng)異常 nohup java -Xms500m -Xmx500m -jar app.jar -Dfile.encoding=utf-8 >log.out &
方式九:?jiǎn)?dòng)時(shí)指定Nacos服務(wù)配置空間
# 啟動(dòng)時(shí)指定Nacos服務(wù)配置空間 nohup java -jar -Dspring.cloud.nacos.config.server-addr=http://nacos-web.hrfax.example -Dspring.cloud.nacos.config.namespace=04995955-38a0-4279-9b2f-2857e844e156 -Dfile.encoding=utf-8 app.jar
二、查看jar包是否運(yùn)行
# ps aux 查看 ps aux | grep app.jar
a 顯示所有用戶的進(jìn)程(show processes for all users)
u 顯示用戶(display the process’s user/owner)
x 顯示無(wú)控制終端的進(jìn)程(also show processes not attached to a terminal)
# ps -ef 查看 ps -ef |grep app.jar
ps -ef 是以System V方式顯示,該種方式比BSD方式顯示的多
e 顯示所有用戶的進(jìn)程(all processes)此參數(shù)的效果和指定"a"參數(shù)相同
f 用ASCII字符顯示樹狀結(jié)構(gòu),表達(dá)程序間的相互關(guān)系(ASCII art forest)
三、殺死Java進(jìn)程
# kill -9 PID 是操作系統(tǒng)從內(nèi)核級(jí)別強(qiáng)制殺死一個(gè)進(jìn)程 kill -9 (進(jìn)程id)
# kill -15 PID 可以理解為操作系統(tǒng)發(fā)送一個(gè)通知告訴應(yīng)用主動(dòng)關(guān)閉 kill -15 (進(jìn)程id)
當(dāng)使用kill -15時(shí),系統(tǒng)會(huì)發(fā)送一個(gè)SIGTERM的信號(hào)給對(duì)應(yīng)的程序。當(dāng)程序接收到該信號(hào)后,具體要如何處理是自己可以決定的。這時(shí)候,應(yīng)用程序可以選擇:
1、立即停止程序
2、釋放響應(yīng)資源后停止程序
3、忽略該信號(hào),繼續(xù)執(zhí)行程序
到此這篇關(guān)于Linux 下通過(guò) java 命令啟動(dòng) jar 包的幾種常見方式的文章就介紹到這了,更多相關(guān)java 命令啟動(dòng) jar 包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java web中圖片驗(yàn)證碼功能的簡(jiǎn)單實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇java web 驗(yàn)證碼的簡(jiǎn)單實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06Struts2實(shí)現(xiàn)文件上傳功能實(shí)例解析
這篇文章主要介紹了Struts2實(shí)現(xiàn)文件上傳功能實(shí)例解析,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-01-01Java BufferedImage轉(zhuǎn)換為MultipartFile方式
這篇文章主要介紹了Java BufferedImage轉(zhuǎn)換為MultipartFile方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09