nohup和&讓程序后臺(tái)運(yùn)行

原文地址:http://www.isee.xyz/a/5ea2a30dcfe99271725ca17b

nohup

nohupno hang up不掛起的意思,如果你正在運(yùn)行一個(gè)進(jìn)程,而且你覺(jué)得在退出帳戶時(shí)該進(jìn)程還不會(huì)結(jié)束,那么可以使用nohup命令。該命令可以在你退出帳戶/關(guān)閉終端之后繼續(xù)運(yùn)行相應(yīng)的進(jìn)程。==該命令運(yùn)行后是前臺(tái)進(jìn)程==

eg: nobup java -jar xxx.jar

&

&指讓程序后臺(tái)運(yùn)行

eg:java -jar xxx.jar &

兩者特點(diǎn)

使用nohup運(yùn)行程序:

  • 結(jié)果默認(rèn)會(huì)輸出到nohup.out

  • 使用Ctrl + C發(fā)送SIGINT信號(hào),程序關(guān)閉

  • 關(guān)閉session發(fā)送SIGHUP信號(hào),程序免疫

使用&后臺(tái)運(yùn)行程序:

  • 結(jié)果會(huì)輸出到終端

  • 使用Ctrl + C發(fā)送SIGINT信號(hào),程序免疫

  • 關(guān)閉session發(fā)送SIGHUP信號(hào),程序關(guān)閉

使用兩者結(jié)合讓程序后臺(tái)運(yùn)行

結(jié)合上面兩個(gè)命令可以讓程序后臺(tái)運(yùn)行,關(guān)閉窗口或者 ctrl+c 都不會(huì)中斷進(jìn)程

nohup java -jar xxx.jar & ,

日志文件的處理

類(lèi)型 文件描述符 含義
標(biāo)準(zhǔn)輸入(standard input) 0 從鍵盤(pán)輸入
標(biāo)準(zhǔn)輸出(standard output) 1 輸出到屏幕(控制臺(tái))
錯(cuò)誤輸出(error output) 2 輸出到屏幕(控制臺(tái))

使用nohup java -jar xxx.jar 命令會(huì)默認(rèn)生成一個(gè) nohup.out 文件來(lái)記錄日志,標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出都會(huì)在該文件中。

如果我們要將日志輸出到指定的其他文件時(shí)可以使用輸出符號(hào) >指定你的文件。例如將文件輸出到log.txt 中可以使用命令:nohup java -jar xxx.jar 1>log.txt 字符1可以省略,這樣標(biāo)準(zhǔn)輸出日志會(huì)輸出到 log.txt文件中,但是錯(cuò)誤的日志怎么處理呢?我需要使用到==命令的重定向綁定==。修改命令為:nohup java -jar xxx.jar >log.txt 2>&1 & 將錯(cuò)誤輸出重定向到標(biāo)準(zhǔn)輸出1中,這樣標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出都會(huì)在log.txt文件中。

如果不需要日志該如何設(shè)置

有的時(shí)候程序中已經(jīng)指定了日志的位置,那么就不需要nohup.out文件了,這時(shí)候要丟棄這個(gè)文件。

/dev/null代表linux的空設(shè)備文件,所有往這個(gè)文件里面寫(xiě)入的內(nèi)容都會(huì)丟失,俗稱黑洞,

我們可以把日志輸出指向這里: nohup java -jar xxx.jar >/dev/null 2>&1

總結(jié)

==后臺(tái)啟動(dòng)并且不需要nohup.out文件的命令:==

nohup java -jar xxx.jar   >/dev/null 2>&1 &
?著作權(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),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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