Spring Boot 以 jar 包方式運(yùn)行在后臺(tái)

參考網(wǎng)址:http://blog.csdn.net/lw_power/article/details/50493648
Spring-boot jar 包方式啟動(dòng):
首先,為了防止和常用的 Tomcat 8080 端口沖突,將 Spring-boot 項(xiàng)目的端口號(hào)設(shè)置為 9090。
具體方法:在 application.properties 文件里寫 server.port=9090。
使用 maven 命令:clean package 打包。
放到服務(wù)器上一個(gè)合適的位置。
使用 java -jar spring-boot01-1.0-SNAPSHOT.jar 命令,啟動(dòng) jar 包。
然后,在瀏覽器輸入 http://124.232.163.150:9090/hello 就可以看到有 json 格式的數(shù)據(jù)返回。

然而,上面的這種方式,只要控制臺(tái)關(guān)閉,服務(wù)就不能訪問了。下面我們使得 jar 包在后臺(tái)運(yùn)行。

nohup java -jar erp-0.0.1-SNAPSHOT.jar > my.log 2>&1 &

對(duì)于上面的命令的解釋:

  1. bash 中 0、1、2 三個(gè)數(shù)字分別代表 STDIN_FILENO 、 STDOUT_FILENO 、STDERR_FILENO ,即標(biāo)準(zhǔn)輸入(一般是鍵盤),標(biāo)準(zhǔn)輸出(一般是顯示屏,準(zhǔn)確的說是用戶終端控制臺(tái)),標(biāo)準(zhǔn)錯(cuò)誤(出錯(cuò)信息輸出)。
數(shù)字 含義
0 標(biāo)準(zhǔn)輸入(一般是鍵盤)
1 標(biāo)準(zhǔn)輸出(一般是顯示屏,準(zhǔn)確的說是用戶終端控制臺(tái))
2 標(biāo)準(zhǔn)錯(cuò)誤(出錯(cuò)信息輸出)

2. 輸入輸出可以重定向,所謂重定向輸入就是在命令中指定具體的輸入來源,譬如 cat < test.c 將 test.c 重定向?yàn)?cat 命令的輸入源。輸出重定向是指定具體的輸出目標(biāo)以替換默認(rèn)的標(biāo)準(zhǔn)輸出,譬如 ls > 1.txt將 ls 的結(jié)果從標(biāo)準(zhǔn)輸出重定向?yàn)?1.txt 文本。
有時(shí)候會(huì)看到如 ls >> 1.txt這類的寫法。
>>> 的區(qū)別在于:> 用于新建而 >> 用于追加。即 ls > 1.txt 會(huì)新建一個(gè) 1.txt 文件并且將 ls 的內(nèi)容輸出到新建的 1.txt 中,而 ls >> 1.txt 則用在 1.txt 已經(jīng)存在,而我們只是想將 ls 的內(nèi)容追加到 1.txt 文本中的時(shí)候。
3. 默認(rèn)輸入只有一個(gè)(0,STDIN_FILENO),而默認(rèn)輸出有兩個(gè)(標(biāo)準(zhǔn)輸出1 STDOUT_FILENO,標(biāo)準(zhǔn)錯(cuò)誤2 STDERR_FILENO)。因此默認(rèn)情況下,shell 輸出的錯(cuò)誤信息會(huì)被輸出到 2,而普通輸出信息會(huì)輸出到 1 。但是某些情況下,我們希望在一個(gè)終端下看到所有的信息(包括標(biāo)準(zhǔn)輸出信息和錯(cuò)誤信息),要怎么辦呢?對(duì)了,你可以使用我們上面講到的輸出重定向。思路有了,怎么寫呢? 非常直觀的想法就是 2>1(將2重定向到1嘛),行不行呢?試一試就知道了。我們進(jìn)行以下測試步驟:

步驟 命令 解釋
1 mkdir test && cd test 創(chuàng)建 test 文件夾并進(jìn)入 test 目錄
2 touch a.txt b.c c 創(chuàng)建 a.txt、b.c、c 三個(gè)文件
3 ls > 1 按我們的猜測,這句應(yīng)該是將 ls 的結(jié)果重定向到標(biāo)準(zhǔn)輸出,因此效果和直接 ls 應(yīng)該一樣。但是實(shí)際這句執(zhí)行后,標(biāo)準(zhǔn)輸出中并沒有任何信息
4 ls 執(zhí)行 3 之后再次 ls ,則會(huì)看到 test 文件夾中多了一個(gè)文件 1
5 cat 1 查看文件1的內(nèi)容,實(shí)際結(jié)果為:1 a.txt b.c c

可見步驟 3 中 ls > 1 并不是將 ls 的結(jié)果重定向?yàn)闃?biāo)準(zhǔn)輸出,而是將結(jié)果重定向到了一個(gè)文件 1 中。即 1 在此處不被解釋為 STDOUT_FILENO,而是文件1。
4. 到了此時(shí),你應(yīng)該也能猜到 2>&1 的用意了。不錯(cuò),2>&1 就是用來將標(biāo)準(zhǔn)錯(cuò)誤 2 重定向到標(biāo)準(zhǔn)輸出 1 中的。此處 1 前面的 & 就是為了讓 bash 將 1 解釋成標(biāo)準(zhǔn)輸出而不是文件 1 。至于最后一個(gè) & ,則是讓 bash 在后臺(tái)執(zhí)行。

這里寫圖片描述

如果這個(gè)時(shí)候,我想關(guān)掉后臺(tái)運(yùn)行的 Spring Boot 的服務(wù),我要這樣做:

ps aux | grep java
kill -9 [進(jìn)程id]

此時(shí),控制臺(tái)顯示:

這里寫圖片描述
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評(píng)論 19 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,273評(píng)論 6 342
  • 本文筆記源自這里——[實(shí)驗(yàn)樓]歡迎大家在下面交流其中有問題的地方喜歡請(qǐng)點(diǎn)收藏,每日更新(全部已親自實(shí)踐). 一. ...
    東皇Amrzs閱讀 4,312評(píng)論 7 54
  • 橋上的車流緩慢無力 大河冰封得奄奄一息 樹木枯呆得沒有生氣 我卻嗅到了地下的生機(jī) 等到絢爛的煙花升起 等到驚雷的一...
    天馬行空云飛揚(yáng)閱讀 257評(píng)論 0 5
  • 電影開始,一個(gè)長鏡頭介紹了故事的發(fā)生地,一座城市,之后看出是在美國某個(gè)城市。之后鏡頭切換,都是很特寫化的來...
    程要提閱讀 395評(píng)論 0 0

友情鏈接更多精彩內(nèi)容