1. 程式人生 > 實用技巧 >Linux伺服器後臺執行jar包

Linux伺服器後臺執行jar包

上程式碼

將執行日誌輸入到 logs.txt (jar包所在的目錄)

nohup java -jar xxx.jar >logs.txt &

分解介紹

  1. 首先最基本的執行jar包命令是:
java -jar xxx.jar

這個命令會鎖定命令視窗,只能看到當前執行的輸出資訊。而無法傳送其他指令。

這種方式當ssh視窗關閉時,程式中止執行,或者是執行時沒法切出去執行其他任務

  1. 讓jar包後臺執行

用"&"符號結尾表示,讓程式在後臺執行。
這樣的話,命令視窗就不會被鎖定,而可以傳送其他指令,但是當視窗關閉時,後臺執行的程式依然會被停止。

nohup

命令:nohup 命令執行由 Command引數和任何相關的 Arg引數指定的命令,忽略所有結束通話訊號。要執行後臺中的 nohup 命令,新增 & ( 表示“and”的符號)到命令的尾部。

簡單地說就是,nohup命令可以阻止視窗關閉是的結束通話訊號,使程式繼續執行。這樣,命令就修改為了

nohup java -jar xxx.jar &
  1. 設定輸出檔案

在這個命令下已經可以實現需要的功能了。最後的 >logs.txt 表示輸出檔案。可以隨意寫隨意指定路徑。如果不寫情況下(預設),就回預設在jar包所在目錄,建立nohup.out檔案。

如果專案中已經指定了日誌輸出,就會重複輸出,生成兩個檔案,把 >logs.txt

刪了的話,當前的執行程式不會再生成新的檔案。

nohup java -jar xxx.jar >logs.txt &

命令執行成功後,會返回一個程序號,可以通過 kill -9 命令殺死這個程序來直接關閉。

如果忘了程序號,可以通過

ps -ef|grep xxx.jar

來檢視當前執行的jar包程式程序號

查詢當前活動的程序

ps -aux|grep java

檢視linux系統記憶體大小的詳細資訊,可以檢視總記憶體,剩餘記憶體、可使用記憶體等資訊

cat /proc/meminfo