centos7系統運行、停止java程序常用命令,springboot打包運行

對於Spring Boot導出的jar包程序

當連接的遠程服務器執行的時候,一旦關閉了當前終端,程序也被迫停止運行了。這顯然是不行的
我想要的是讓它常駐後臺執行,不受啓動其終端關閉與否的影響。

解決辦法

在jar包文件所在的目錄執行以下命令:

 nohup java -jar springboot-0.0.1-SNAPSHOT.jar  >nohup 2>&1 &

nohup: 不掛斷的執行命令,忽略所有的掛斷信號。 運行後臺命令 最後加 &
在jar目錄下會生成一個nohup.out文件,默認的log輸出到這裏了。

命令解釋

以上命令是不輸出啓動日誌的,運行後會只輸出一個運行的進程號。
想要輸出啓動日誌可以這樣:

java -jar xx.jar > log.file 2>&1 &

這裏啓動信息就輸出到了日誌文件上,注意的是log文件需要先創建chmod授權
可以給日誌一個777授權,測試階段無所謂:

chmod 777 -R /home/logs
2>&1含義

& 1 更準確的說是文件描述符 1,
而1 一般代表的就是STDOUT_FILENO,實際上這個操作就是一個dup2(2)調用
.他標準輸出到all_result ,然後複製標準輸出到文件描述符2(STDERR_FILENO), 其後果就是文件描述符1和2指向同一個文件表項,也可以說錯誤的輸出被合併了
.其中0表示鍵盤輸入 1表示屏幕輸出 2表示錯誤輸出.把標準出錯重定向到標準輸出,然後扔到/DEV/NULL下面去。通俗的說,就是把所有標準輸出和標準出錯都扔到垃圾桶裏面。

含義
0 標準輸入(一般是鍵盤)
1 標準輸出(一般是顯示屏,準確的說是用戶終端控制檯)
2 標準錯誤(出錯信息輸出)

最後一個& , 是讓該命令在後臺執行

查看進程

查看全部進程

ps -ef 

查看java進程

ps -ef |grep java

在這裏插入圖片描述
如圖所示:
第一個進程是我jar包啓動進程,第二個是java的查找進程不用管
前面的那個root是當前用戶,第一個數字403是當前進程號
殺死當前進程

kill -9 403

只查詢當前jar包程序的進程號:

pgrep -f 'java -jar springboot-0.0.1-SNAPSHOT.jar'

如圖所示:
在這裏插入圖片描述

發佈了141 篇原創文章 · 獲贊 168 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章