Linux下啟動(dòng)jar包的幾種常見(jiàn)方式
1、直接啟動(dòng) jar 包
java -jar xxx.jar # 缺點(diǎn):當(dāng)前 ssh 窗口會(huì)被鎖定,不能再操作其他命令,如果需要執(zhí)行其他命令,則需要打斷進(jìn)程,可按CTRL + C打斷程序運(yùn)行,或直接關(guān)閉窗口,程序也會(huì)退出
優(yōu)點(diǎn):
- 方便快捷,只需要在命令行中輸入一個(gè)命令即可啟動(dòng) jar 包。
- 可以通過(guò)命令行參數(shù)來(lái)配置啟動(dòng)參數(shù),比如:java -jar myapp.jar --port=8080。
缺點(diǎn):
- 如果希望后臺(tái)運(yùn)行,需要使用 nohup 命令或者將命令放到后臺(tái)運(yùn)行。
- 如果需要在多個(gè)服務(wù)器上啟動(dòng)同一個(gè) jar 包,需要手動(dòng)在每個(gè)服務(wù)器上啟動(dòng)。
2、后臺(tái)啟動(dòng) jar 包
java -jar xxx.jar & # 缺點(diǎn):當(dāng)前ssh窗口不被鎖定,但是當(dāng)窗口關(guān)閉時(shí),程序中止運(yùn)行。
3、后臺(tái)不掛斷啟動(dòng)
nohup java -jar xxx.jar & # 用 nohub 命令啟動(dòng) jar 包,是在后臺(tái)不掛斷運(yùn)行,關(guān)閉終端窗口或者 CTRL + C 命令也不會(huì)終止程序。 # 當(dāng)用 nohub命令啟動(dòng) jar 包的時(shí)候,如果不指定日志輸出文件,則所有的輸出都會(huì)被重定向到 nohub.out 的文件中。
4、指定日志輸出的啟動(dòng)
nohup java -jar xxx.jar >log.out & # 通過(guò) >log.out 命令,將程序的日志輸出重定向到 log.out 文件中。
5、指定配置文件啟動(dòng)
nohup java -jar xxx.jar --spring.profiles.active=prod > run.log & # 通過(guò) --spring profiles.active=prod 來(lái)指定,啟動(dòng)的是application-prod.yml 或者 application-prod.properties 配置文件。 # prod是指定配置文件的結(jié)尾后綴。 # run.log是指定輸出日志的文件。
# --spring profiles.active默認(rèn)運(yùn)行application.yml配置文件。 nohup java -jar xxx.jar --spring.profiles.active > run.log &
6、指定配置文件,使用系統(tǒng)默認(rèn)的log配置,不另行指定日志輸入
#啟動(dòng)/opt/a/目錄下的 test.jar ,配置文件使用 prod,日志使用配置文件默認(rèn)配置(比如我項(xiàng)目中用到的是logback),不單獨(dú)指定。 nohup java -jar /opt/a/a.jar --spring.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。
7、指定分配系統(tǒng)資源大小
nohup java -Xms500m -Xmx500m -jar XXX.jar --spring.profiles.active > run.log &
nohup java -Xms1024m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m -jar XXX.jar 參數(shù)說(shuō)明: -Xms:初始Heap大小,使用的最小內(nèi)存,cpu性能高時(shí)此值應(yīng)設(shè)的大一些 -Xmx:java heap最大值,使用的最大內(nèi)存 -XX:PermSize:設(shè)定內(nèi)存的永久保存區(qū)域 -XX:MaxPermSize:設(shè)定最大內(nèi)存的永久保存區(qū)域 -XX:MaxNewSize: +XX:AggressiveHeap 會(huì)使得 Xmx沒(méi)有意義。這個(gè)參數(shù)讓jvm忽略Xmx參數(shù),瘋狂地吃完一個(gè)G物理內(nèi)存,再吃盡一個(gè)G的swap。 -Xss:每個(gè)線程的Stack大小 -verbose:gc 現(xiàn)實(shí)垃圾收集信息 -Xloggc:gc.log 指定垃圾收集日志文件 -Xmn:young generation的heap大小,一般設(shè)置為Xmx的3、4分之一 -XX:+UseParNewGC :縮短minor收集的時(shí)間 -XX:+UseConcMarkSweepGC :縮短major收集的時(shí)間 提示:此選項(xiàng)在Heap Size 比較大而且Major收集時(shí)間較長(zhǎng)的情況下使用更合適。
總結(jié)
到此這篇關(guān)于Linux下啟動(dòng)jar包的幾種常見(jiàn)方式的文章就介紹到這了,更多相關(guān)Linux啟動(dòng)jar包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
spring boot 自定義starter的實(shí)現(xiàn)教程
下面小編就為大家分享一篇spring boot 自定義starter的實(shí)現(xiàn)教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12Java編寫簡(jiǎn)易rabbitmq生產(chǎn)者與消費(fèi)者的代碼
開發(fā)時(shí)經(jīng)常與其它系統(tǒng)用rabbitmq對(duì)接,當(dāng)需要自測(cè)時(shí),還是自己寫rabbitmq生產(chǎn)者、消費(fèi)者自測(cè)方便些,下面給大家總結(jié)使用java編寫簡(jiǎn)易rabbitmq的方法,感興趣的朋友一起看看吧2023-11-11spring security國(guó)際化及UserCache的配置和使用
這篇文章主要介紹下國(guó)際化的配置及UserCache的配置及使用教程,感興趣的朋友參考下實(shí)現(xiàn)代碼吧2017-09-09spring?boot?Mybatis?攔截器實(shí)現(xiàn)拼接sql和修改的代碼詳解
這篇文章主要介紹了spring?boot?Mybatis?攔截器實(shí)現(xiàn)拼接sql和修改,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05java實(shí)戰(zhàn)之飛機(jī)大戰(zhàn)小游戲(源碼加注釋)
這篇文章主要介紹了java實(shí)戰(zhàn)之飛機(jī)大戰(zhàn)小游戲(源碼加注釋),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04Java8方法引用及構(gòu)造方法引用原理實(shí)例解析
這篇文章主要介紹了Java8方法引用及構(gòu)造方法引用原理實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Java輸入輸出流復(fù)制文件所用時(shí)間對(duì)比
這篇文章主要介紹了Java輸入輸出流復(fù)制文件所用時(shí)間對(duì)比的相關(guān)資料,非常不錯(cuò),具有參考解決價(jià)值,需要的朋友可以參考下2016-08-08