|
nohup命令:如果你正在運(yùn)行一個(gè)進(jìn)程,而且你覺(jué)得在退出帳戶時(shí)該進(jìn)程還不會(huì)結(jié)束,那么可以使用nohup命令。該命令可以在你退出帳戶/關(guān)閉終端之后繼續(xù)運(yùn)行相應(yīng)的進(jìn)程。nohup就是不掛起的意思( no hang up)。
該命令的一般形式為:nohup command &
使用nohup命令提交作業(yè)
如果使用nohup命令提交作業(yè),那么在缺省情況下該作業(yè)的所有輸出都被重定向到一個(gè)名為nohup.out的文件中,除非另外指定了輸出文件:
nohup command > myout.file 2>&1 &
在上面的例子中,輸出被重定向到myout.file文件中。
-------------------------------------
先說(shuō)一下linux重定向:
0、1和2分別表示標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤信息輸出,可以用來(lái)指定需要重定向的標(biāo)準(zhǔn)輸入或輸出。
在一般使用時(shí),默認(rèn)的是標(biāo)準(zhǔn)輸出,既1.當(dāng)我們需要特殊用途時(shí),可以使用其他標(biāo)號(hào)。例如,將某個(gè)程序的錯(cuò)誤信息輸出到log文件中:./program 2>log。這樣標(biāo)準(zhǔn)輸出還是在屏幕上,但是錯(cuò)誤信息會(huì)輸出到log文件中。
另外,也可以實(shí)現(xiàn)0,1,2之間的重定向。2>&1:將錯(cuò)誤信息重定向到標(biāo)準(zhǔn)輸出。
Linux下還有一個(gè)特殊的文件/dev/null,它就像一個(gè)無(wú)底洞,所有重定向到它的信息都會(huì)消失得無(wú)影無(wú)蹤。這一點(diǎn)非常有用,當(dāng)我們不需要回顯程序的所有信息時(shí),就可以將輸出重定向到/dev/null。
如果想要正常輸出和錯(cuò)誤信息都不顯示,則要把標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤都重定向到/dev/null, 例如:
# ls 1>/dev/null 2>/dev/null
還有一種做法是將錯(cuò)誤重定向到標(biāo)準(zhǔn)輸出,然后再重定向到 /dev/null,例如:
# ls >/dev/null 2>&1
注意:此處的順序不能更改,否則達(dá)不到想要的效果,此時(shí)先將標(biāo)準(zhǔn)輸出重定向到 /dev/null,然后將標(biāo)準(zhǔn)錯(cuò)誤重定向到標(biāo)準(zhǔn)輸出,由于標(biāo)準(zhǔn)輸出已經(jīng)重定向到了/dev/null,因此標(biāo)準(zhǔn)錯(cuò)誤也會(huì)重定向到/dev/null,于是一切靜悄悄:-)
由于使用nohup時(shí),會(huì)自動(dòng)將輸出寫入nohup.out文件中,如果文件很大的話,nohup.out就會(huì)不停的增大,這是我們不希望看到的,因此,可以利用/dev/null來(lái)解決這個(gè)問(wèn)題。
nohup ./program >/dev/null 2>log &
如果錯(cuò)誤信息也不想要的話:
nohup ./program >/dev/null 2>&1 &
|
|