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