JAVA-jar包運行及日志輸出


一般情況下運行jar包,當前是可運行的jar包,直接命令

java -jar common.jar 

按下ctrl+C ,關閉當前ssh或者直接關閉窗口,當前程序都會退出。

我們在命令的結尾添加 “&” ,&表示該程序可以在后台執行

java -jar common.jar &

 但是在當窗口關閉時,程序也會中止運行

nohup java -jar common.jar &

命令最前面個nohub關鍵字,這樣程序就會不掛斷運行命令, 當ssh終端關閉時,程序仍然在運行,當前程序的日志會被寫入到當前目錄的nohup.out文件中

我們可以改下輸入的日志文件

nohup java -jar common.jar > log.out &

當前程序的日志會被寫入到當前目錄的log.out文件中

如果不想寫日志,可以將日志重定向到 /dev/null 中,/dev/null代表linux的空設備文件,所有往這個文件里面寫入的內容都會丟失

nohup java -jar common.jar > /dev/null &

標准輸出就會不再存在,沒有任何地方能夠找到輸出的內容

 

nohup java -jar common-api.jar >/dev/null 2>log.error & 

只輸出錯誤信息到日志文件,標准輸出不寫入日志文件,直接丟棄

 

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

標准輸出(stdout)重定向到/dev/null中(丟棄標准輸出),然后標准錯誤輸出(stderror)由於重用了標准輸出的描述符,所以標准錯誤輸出也被定向到了/dev/null中,錯誤輸出同樣也被丟棄了

 

nohup java -jar common-api.jar >log.out 2>&1 & 

標准輸出重定向到log.out中,然后錯誤輸出由於重用了標准輸出的描述符,所以錯誤輸出也被定向到了log.out中 

 

但是不管那種情況,如果日志輸出,日志文件都會增加很快,造成單個文件很大。所以需要拆分文件

1:定時作業,每天將日志文件復制一份,然后將當前的日志文件清空。

2:借助 cronolog來分隔日志

nohup java -jar common-api.jar | /usr/local/cronolog/sbin/cronolog logs/console-%Y-%m-%d.out &

這樣每天會產生一個console開頭的日志文件。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM