Springboot項(xiàng)目java -jar 啟動(dòng)jar包參數(shù)詳解

參考鏈接:https://blog.csdn.net/ldx891113/article/details/51735171

命令實(shí)例:

nohup java -Xms500m -Xmx500m -Xmn250m -Xss256k -server -XX:+HeapDumpOnOutOfMemoryError -jar $JAR_PATH/test-0.0.1-SNAPSHOT.jar --spring.profiles.active=daily -verbose:class &
說明:

--spring.profiles.active=daily故黑, 這個(gè)可以在spring-boot啟動(dòng)中指定系統(tǒng)變量苏揣,多環(huán)境(測試、預(yù)發(fā)吓蘑、線上配置)的區(qū)分
在排查jar包沖突時(shí)渠退,可以指定啟動(dòng)的-verbose:class 打印出啟動(dòng)的應(yīng)用實(shí)際加載類的路徑攘乒,來排查來源。
jvm堆設(shè)值: -Xms500m -Xmx500m -Xmn250m -Xss256k
nohup 不掛斷地運(yùn)行命令构蹬;& 在后臺運(yùn)行 王暗,一般兩個(gè)一起用。 eg:nohup command &
-server:服務(wù)器模式庄敛,在多個(gè)CPU時(shí)性能佳俗壹,啟動(dòng)慢但性能好,能合理管理內(nèi)存藻烤。
-XX:+HeapDumpOnOutOfMemoryError:在堆溢出時(shí)保存快照
可以用 java -X命令在終端查詢所有的java堆參數(shù):

-Xmixed 混合模式執(zhí)行 (默認(rèn))
-Xint 僅解釋模式執(zhí)行
-Xbootclasspath:<用 : 分隔的目錄和 zip/jar 文件>
設(shè)置搜索路徑以引導(dǎo)類和資源
-Xbootclasspath/a:<用 : 分隔的目錄和 zip/jar 文件>
附加在引導(dǎo)類路徑末尾
-Xbootclasspath/p:<用 : 分隔的目錄和 zip/jar 文件>
置于引導(dǎo)類路徑之前
-Xdiag 顯示附加診斷消息
-Xnoclassgc 禁用類垃圾收集
-Xincgc 啟用增量垃圾收集
-Xloggc:<file> 將 GC 狀態(tài)記錄在文件中 (帶時(shí)間戳)
-Xbatch 禁用后臺編譯
-Xms<size> 設(shè)置初始 Java 堆大小
-Xmx<size> 設(shè)置最大 Java 堆大小
-Xss<size> 設(shè)置 Java 線程堆棧大小
-Xprof 輸出 cpu 配置文件數(shù)據(jù)
-Xfuture 啟用最嚴(yán)格的檢查, 預(yù)期將來的默認(rèn)值
-Xrs 減少 Java/VM 對操作系統(tǒng)信號的使用 (請參閱文檔)
-Xcheck:jni 對 JNI 函數(shù)執(zhí)行其他檢查
-Xshare:off 不嘗試使用共享類數(shù)據(jù)
-Xshare:auto 在可能的情況下使用共享類數(shù)據(jù) (默認(rèn))
-Xshare:on 要求使用共享類數(shù)據(jù), 否則將失敗策肝。
-XshowSettings 顯示所有設(shè)置并繼續(xù)
-XshowSettings:all
顯示所有設(shè)置并繼續(xù)
-XshowSettings:vm 顯示所有與 vm 相關(guān)的設(shè)置并繼續(xù)
-XshowSettings:properties
顯示所有屬性設(shè)置并繼續(xù)
-XshowSettings:locale
顯示所有與區(qū)域設(shè)置相關(guān)的設(shè)置并繼續(xù)

-X 選項(xiàng)是非標(biāo)準(zhǔn)選項(xiàng), 如有更改, 恕不另行通知。

以下選項(xiàng)為 Mac OS X 特定的選項(xiàng):
-XstartOnFirstThread
在第一個(gè) (AppKit) 線程上運(yùn)行 main() 方法
-Xdock:name=<應(yīng)用程序名稱>"
覆蓋鸵啵靠欄中顯示的默認(rèn)應(yīng)用程序名稱
-Xdock:icon=<圖標(biāo)文件的路徑>
覆蓋椭冢靠欄中顯示的默認(rèn)圖標(biāo)

-server和-client具體說明:

 -server:一定要作為第一個(gè)參數(shù),在多個(gè) CPU 時(shí)性能佳依许,還有一種叫 -client 的模式棺禾,特點(diǎn)是啟動(dòng)速度比較快,但運(yùn)行時(shí)性能和內(nèi)存管理效率不高峭跳,通常用于客戶端應(yīng)用程序或開發(fā)調(diào)試膘婶,在 32 位環(huán)境下直接運(yùn)行 Java 程序默認(rèn)啟用該模式。Server 模式的特點(diǎn)是啟動(dòng)速度比較慢蛀醉,但運(yùn)行時(shí)性能和內(nèi)存管理效率很高悬襟,適用于生產(chǎn)環(huán)境,在具有 64 位能力的 JDK 環(huán)境下默認(rèn)啟用該模式拯刁,可以不配置該參數(shù)脊岳。 

-XX:+HeapDumpOnOutOfMemoryError:

該配置會把快照保存在user.dir中,比如你用tomcat啟動(dòng)垛玻,那應(yīng)該是在tomcat的bin目錄下

當(dāng)然割捅,也可以通過XX:HeapDumpPath=./java_pid.hprof來顯示指定路徑

此外,OnOutOfMemoryError參數(shù)允許用戶指定當(dāng)出現(xiàn)oom時(shí)帚桩,指定某個(gè)腳本來完成一些動(dòng)作亿驾,比如郵件知會。账嚎。莫瞬。

$ java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heapdump.hprof -XX:OnOutOfMemoryError ="sh ~/cleanup.sh" MyApp

其他補(bǔ)充說明:

shell命令重定向綁定:

nohup command >/dev/null 2>&1 &

/dev/null 2>&1儡蔓。這條命令其實(shí)分為兩命令,一個(gè)是>/dev/null疼邀,另一個(gè)是2>&1喂江。

  1. /dev/null

這條命令的作用是將標(biāo)準(zhǔn)輸出1重定向到/dev/null中。/dev/null代表linux的空設(shè)備文件檩小,所有往這個(gè)文件里面寫入的內(nèi)容都會丟失,俗稱“黑洞”烟勋。那么執(zhí)行了>/dev/null之后规求,標(biāo)準(zhǔn)輸出就會不再存在,沒有任何地方能夠找到輸出的內(nèi)容卵惦。

  1. 2>&1

這條命令用到了重定向綁定阻肿,采用&可以將兩個(gè)輸出綁定在一起。這條命令的作用是錯(cuò)誤輸出將和標(biāo)準(zhǔn)輸出同用一個(gè)文件描述符沮尿,說人話就是錯(cuò)誤輸出將會和標(biāo)準(zhǔn)輸出輸出到同一個(gè)地方丛塌。

linux在執(zhí)行shell命令之前,就會確定好所有的輸入輸出位置畜疾,并且從左到右依次執(zhí)行重定向的命令赴邻,所以>/dev/null 2>&1的作用就是讓標(biāo)準(zhǔn)輸出重定向到/dev/null中(丟棄標(biāo)準(zhǔn)輸出),然后錯(cuò)誤輸出由于重用了標(biāo)準(zhǔn)輸出的描述符啡捶,所以錯(cuò)誤輸出也被定向到了/dev/null中姥敛,錯(cuò)誤輸出同樣也被丟棄了。執(zhí)行了這條命令之后瞎暑,該條shell命令將不會輸出任何信息到控制臺彤敛,也不會有任何信息輸出到文件中。

/dev/null 2>&1 VS 2>&1 >/dev/null

乍眼看這兩條命令貌似是等同的了赌,但其實(shí)大為不同墨榄。剛才提到了,linux在執(zhí)行shell命令之前勿她,就會確定好所有的輸入輸出位置袄秩,并且從左到右依次執(zhí)行重定向的命令。那么我們同樣從左到右地來分析2>&1 >/dev/null:

2>&1逢并,將錯(cuò)誤輸出綁定到標(biāo)準(zhǔn)輸出上播揪。由于此時(shí)的標(biāo)準(zhǔn)輸出是默認(rèn)值,也就是輸出到屏幕筒狠,所以錯(cuò)誤輸出會輸出到屏幕猪狈。

/dev/null,將標(biāo)準(zhǔn)輸出1重定向到/dev/null中辩恼。
我們用一個(gè)表格來更好地說明這兩條命令的區(qū)別:

命令 標(biāo)準(zhǔn)輸出 錯(cuò)誤輸出

/dev/null 2>&1 丟棄 丟棄
2>&1 >/dev/null 丟棄 屏幕
/dev/null 2>&1 VS >/dev/null 2>/dev/null

那么可能會有些同學(xué)會疑問雇庙,為什么要用重定向綁定谓形,而不是像>/dev/null 2>/dev/null這樣子重復(fù)一遍呢。

為了回答這個(gè)問題疆前,我們回到剛才介紹輸出重定向的場景寒跳。我們嘗試將標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出都定向到out文件中:

1
2
3
4

ls a.txt b.txt >out 2>out

cat out

a.txt
?法訪問b.txt: 沒有那個(gè)文件或目錄
WTF?竟然出現(xiàn)了亂碼竹椒,這是為啥呢童太?這是因?yàn)椴捎眠@種寫法,標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出會搶占往out文件的管道胸完,所以可能會導(dǎo)致輸出內(nèi)容的時(shí)候出現(xiàn)缺失书释、覆蓋等情況。現(xiàn)在是出現(xiàn)了亂碼赊窥,有時(shí)候也有可能出現(xiàn)只有error信息或者只有正常信息的情況爆惧。不管怎么說,采用這種寫法锨能,最后的情況是無法預(yù)估的扯再。

而且,由于out文件被打開了兩次址遇,兩個(gè)文件描述符會搶占性的往文件中輸出內(nèi)容熄阻,所以整體IO效率不如>/dev/null 2>&1來得高。

nohup結(jié)合

1.nohup

用途:不掛斷地運(yùn)行命令倔约。

語法:nohup Command [ Arg … ] [ & ]

無論是否將 nohup 命令的輸出重定向到終端饺律,輸出都將附加到當(dāng)前目錄的 nohup.out 文件中。

如果當(dāng)前目錄的 nohup.out 文件不可寫跺株,輸出重定向到 $HOME/nohup.out 文件中复濒。

如果沒有文件能創(chuàng)建或打開以用于追加,那么 Command 參數(shù)指定的命令不可調(diào)用乒省。

退出狀態(tài):該命令返回下列出口值:

126 可以查找但不能調(diào)用 Command 參數(shù)指定的命令巧颈。

127 nohup 命令發(fā)生錯(cuò)誤或不能查找由 Command 參數(shù)指定的命令。

否則袖扛,nohup 命令的退出狀態(tài)是 Command 參數(shù)指定命令的退出狀態(tài)砸泛。

2.&

用途:在后臺運(yùn)行

一般兩個(gè)一起用

我們經(jīng)常使用nohup command &命令形式來啟動(dòng)一些后臺程序,比如一些java服務(wù):

1

nohup java -jar xxxx.jar &

為了不讓一些執(zhí)行信息輸出到前臺(控制臺)蛆封,我們還會加上剛才提到的>/dev/null 2>&1命令來丟棄所有的輸出:

1

nohup java -jar xxxx.jar >/dev/null 2>&1 &

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末唇礁,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子惨篱,更是在濱河造成了極大的恐慌盏筐,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件砸讳,死亡現(xiàn)場離奇詭異琢融,居然都是意外死亡界牡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進(jìn)店門漾抬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宿亡,“玉大人,你說我怎么就攤上這事纳令⊥燔” “怎么了?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵平绩,是天一觀的道長圈匆。 經(jīng)常有香客問我,道長馒过,這世上最難降的妖魔是什么臭脓? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任酗钞,我火速辦了婚禮腹忽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘砚作。我一直安慰自己窘奏,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布葫录。 她就那樣靜靜地躺著着裹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪米同。 梳的紋絲不亂的頭發(fā)上骇扇,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天,我揣著相機(jī)與錄音面粮,去河邊找鬼少孝。 笑死,一個(gè)胖子當(dāng)著我的面吹牛熬苍,可吹牛的內(nèi)容都是我干的稍走。 我是一名探鬼主播,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼柴底,長吁一口氣:“原來是場噩夢啊……” “哼婿脸!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起柄驻,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤涡上,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后段审,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡冗恨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了味赃。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掀抹。...
    茶點(diǎn)故事閱讀 40,918評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖心俗,靈堂內(nèi)的尸體忽然破棺而出傲武,到底是詐尸還是另有隱情,我是刑警寧澤城榛,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布揪利,位于F島的核電站,受9級特大地震影響狠持,放射性物質(zhì)發(fā)生泄漏疟位。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一喘垂、第九天 我趴在偏房一處隱蔽的房頂上張望甜刻。 院中可真熱鬧,春花似錦正勒、人聲如沸得院。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽祥绞。三九已至,卻和暖如春鸭限,著一層夾襖步出監(jiān)牢的瞬間蜕径,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工败京, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留兜喻,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓喧枷,卻偏偏與公主長得像虹统,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子隧甚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,926評論 2 361

推薦閱讀更多精彩內(nèi)容