linux運行jar、nohup: ignoring input and redirecting stderr to stdout


 

在linux服務器上運行Jar文件時通常的方法是:

$ java -jar test.jar
//這種方式特點是ssh窗口關閉時,程序中止運行.或者是運行時沒法切出去執行其他任務

jar在后台運行的方法:

方法一:

$ nohup java -jar test.jar &
//nohup 意思是不掛斷運行命令,當賬戶退出或終端關閉時,程序仍然運行
//當用 nohup 命令執行作業時,缺省情況下該作業的所有輸出被重定向到nohup.out的文件中
//除非另外指定了輸出文件。

方法二:

$ nohup java -jar test.jar >temp.txt &
//這種方法會把日志文件輸入到你指定的文件中,沒有則會自動創建

jobs命令和 fg命令:

$ jobs
//那么就會列出所有后台執行的作業,並且每個作業前面都有個編號。
//如果想將某個作業調回前台控制,只需要 fg + 編號即可。
$ fg 2

查看某端口占用的線程的pid

netstat -nlp |grep :8080

 

出現:nohup: ignoring input and redirecting stderr to stdout

nohup java -jar test.jar >temp.txt &
改成
nohup java -jar test.jar >temp.txt 2>&1 &

解決linux環境下nohup: redirecting stderr to stdout問題

我的啟動命令是這樣的:
nohup bin/startManagedServer.sh myserver htp://192.168.0.1 -Xms2048m -Xmx2048m > logs/myserver.out &現在指行這個命令,會給我產生兩個文件,一個中logs/myserver.out,另一個是nohup.out文件。
怎樣才能讓它不產生nohup.out文件呢。
網上搜了半天,據說好象可以把后面的 “&” 改成 “2>&1 &”,於是把啟動命令改成如下:

nohup bin/startManagedServer.sh myserver htp://192.168.0.1 -Xms2048m -Xmx2048m > logs/myserver.out 2>&1 &再次執行,問題解決。

解釋如下:

2>
表示把標准錯誤(stderr)重定向,標准輸出(stdout)是1。

尖括號后面可以跟文件名,或者是&1, &2,分別表示重定向到標准輸出和標准錯誤。

2> &1
1> &2
2> stderr.log
1> stdout.log

 


免責聲明!

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



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