Linux 下通過(guò) java 命令啟動(dòng) jar 包常見(jiàn)方式小結(jié)
Linux 下通過(guò) java 命令啟動(dòng) jar 包的幾種常見(jiàn)方式
一、后臺(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 &
常見(jiàn)的文件描述符有如下:
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 包的幾種常見(jiàn)方式的文章就介紹到這了,更多相關(guān)java 命令啟動(dòng) jar 包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java遞歸運(yùn)行的機(jī)制:遞歸的微觀解讀圖文分析
這篇文章主要介紹了Java遞歸運(yùn)行的機(jī)制:遞歸的微觀解讀,結(jié)合圖文形式詳細(xì)分析了java遞歸運(yùn)行的原理、機(jī)制與相關(guān)注意事項(xiàng),需要的朋友可以參考下2020-03-03
基于Spring-cloud-gateway實(shí)現(xiàn)全局日志記錄的方法
最近項(xiàng)目在線上運(yùn)行出現(xiàn)了一些難以復(fù)現(xiàn)的bug需要定位相應(yīng)api的日志,通過(guò)nginx提供的api請(qǐng)求日志難以實(shí)現(xiàn),于是在gateway通過(guò)全局過(guò)濾器記錄api請(qǐng)求日志,本文給大家介紹基于Spring-cloud-gateway實(shí)現(xiàn)全局日志記錄,感興趣的朋友一起看看吧2023-11-11
Java實(shí)現(xiàn)支付對(duì)接常用加密方式的示例代碼
這篇文章主要為大家詳細(xì)介紹了Java如何實(shí)現(xiàn)支付對(duì)接時(shí)常用加密方式,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Java有一點(diǎn)幫助,需要的可以參考一下2023-02-02
淺談java中null是什么,以及使用中要注意的事項(xiàng)
下面小編就為大家?guī)?lái)一篇淺談java中null是什么,以及使用中要注意的事項(xiàng)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09

