Linux中&與nohup命令怎么用

這篇文章主要為大家展示了“Linux中&與nohup命令怎么用”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Linux中&與nohup命令怎么用”這篇文章吧。

成都創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)嘉禾,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):13518219792

我們以下面一個(gè)test程序來(lái)模擬產(chǎn)生大量log的程序,這個(gè)程序每隔1秒就會(huì)打印一句“Hello world!”:

#include  #include  #include  int main() {    fflush(stdout);     setvbuf(stdout, NULL, _IONBF, 0);     while (1) {         printf("Hello world!\n");         sleep(1);     }}

現(xiàn)在,我們想要一個(gè)清靜的世界,終端上不要有大量的log出現(xiàn),我們要求test程序在后臺(tái)運(yùn)行。

##&##

這種方法很簡(jiǎn)單,就是在命令之后加個(gè)“&”符號(hào)就可以了,如下:

./test &

這樣一來(lái),test程序就在后臺(tái)運(yùn)行了。但是,這樣處理還不夠,因?yàn)檫@樣做雖然程序是在后臺(tái)運(yùn)行了,但log依然不停的輸出到當(dāng)前終端。因此,要讓終端徹底的清靜,還應(yīng)將log重定向到指定的文件:

./test >> out.txt 2>&1 &

2>&1是指將標(biāo)準(zhǔn)錯(cuò)誤重定向到標(biāo)準(zhǔn)輸出,于是標(biāo)準(zhǔn)錯(cuò)誤和標(biāo)準(zhǔn)輸出都重定向到指定的out.txt文件中,從此終端徹底清靜了。

但是這樣做要注意,如果Test程序需要從標(biāo)準(zhǔn)輸入接收數(shù)據(jù),它就會(huì)在那死等,不會(huì)再往下運(yùn)行。所以需要從標(biāo)準(zhǔn)輸入接收數(shù)據(jù),那這種方法最好不要使用。

那現(xiàn)在程序在后臺(tái)運(yùn)行了,我們?cè)趺凑业剿?很簡(jiǎn)單,有兩種方法:

1. jobs命令

jobs命令可以查看當(dāng)前有多少在后臺(tái)運(yùn)行。

jobs -l

此命令可顯示所有任務(wù)的PID,jobs的狀態(tài)可以是running, stopped, Terminated。但是如果任務(wù)被終止了(kill),shell  從當(dāng)前的shell環(huán)境已知的列表中刪除任務(wù)的進(jìn)程標(biāo)識(shí)。

2. ps命令

ps aux | grep test

##nohup命令##

在命令的末尾加個(gè)&符號(hào)后,程序可以在后臺(tái)運(yùn)行,但是一旦當(dāng)前終端關(guān)閉(即退出當(dāng)前帳戶),該程序就會(huì)停止運(yùn)行。那假如說(shuō)我們想要退出當(dāng)前終端,但又想讓程序在后臺(tái)運(yùn)行,該如何處理呢?

實(shí)際上,這種需求在現(xiàn)實(shí)中很常見,比如想遠(yuǎn)程到服務(wù)器編譯程序,但網(wǎng)絡(luò)不穩(wěn)定,一旦掉線就編譯就中止,就需要重新開始編譯,很浪費(fèi)時(shí)間。

在這種情況下,我們就可以使用nohup命令。nohup就是不掛起的意思( no hang up)。該命令的一般形式為:

nohup ./test &

如果僅僅如此使用nohup命令的話,程序的輸出會(huì)默認(rèn)重定向到一個(gè)nohup.out文件下。如果我們想要輸出到指定文件,可另外指定輸出文件:

nohup ./test > myout.txt 2>&1 &

這樣一來(lái),多管齊下,既使用了nohup命令,也使用了&符號(hào),同時(shí)把標(biāo)準(zhǔn)輸出/錯(cuò)誤重定向到指定目錄下。

使用了nohup之后,很多人就這樣不管了,其實(shí)這樣有可能在當(dāng)前賬戶非正常退出或者結(jié)束的時(shí)候,命令還是自己結(jié)束了。所以在使用nohup命令后臺(tái)運(yùn)行命令之后,需要使用exit正常退出當(dāng)前賬戶,這樣才能保證命令一直在后臺(tái)運(yùn)行。

以上是“Linux中&與nohup命令怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)頁(yè)名稱:Linux中&與nohup命令怎么用
文章起源:http://muchs.cn/article48/ghjchp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷、手機(jī)網(wǎng)站建設(shè)標(biāo)簽優(yōu)化、用戶體驗(yàn)品牌網(wǎng)站建設(shè)、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)