標(biāo)題: nohup命令及其輸出文件 [打印本頁]

作者: 51黑tt    時間: 2016-3-5 23:16
標(biāo)題: nohup命令及其輸出文件
  nohup命令:如果你正在運(yùn)行一個進(jìn)程,而且你覺得在退出帳戶時該進(jìn)程還不會結(jié)束,那么可以使用nohup命令。該命令可以在你退出帳戶/關(guān)閉終端之后繼續(xù)運(yùn)行相應(yīng)的進(jìn)程。nohup就是不掛起的意思( no hang up)。
  該命令的一般形式為:nohup command &
  使用nohup命令提交作業(yè)
  如果使用nohup命令提交作業(yè),那么在缺省情況下該作業(yè)的所有輸出都被重定向到一個名為nohup.out的文件中,除非另外指定了輸出文件:
  nohup command > myout.file 2>&1 &
  在上面的例子中,輸出被重定向到myout.file文件中。

-------------------------------------

先說一下linux重定向:
0、1和2分別表示標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤信息輸出,可以用來指定需要重定向的標(biāo)準(zhǔn)輸入或輸出。
在一般使用時,默認(rèn)的是標(biāo)準(zhǔn)輸出,既1.當(dāng)我們需要特殊用途時,可以使用其他標(biāo)號。例如,將某個程序的錯誤信息輸出到log文件中:./program 2>log。這樣標(biāo)準(zhǔn)輸出還是在屏幕上,但是錯誤信息會輸出到log文件中。
另外,也可以實現(xiàn)0,1,2之間的重定向。2>&1:將錯誤信息重定向到標(biāo)準(zhǔn)輸出。
Linux下還有一個特殊的文件/dev/null,它就像一個無底洞,所有重定向到它的信息都會消失得無影無蹤。這一點非常有用,當(dāng)我們不需要回顯程序的所有信息時,就可以將輸出重定向到/dev/null。

如果想要正常輸出和錯誤信息都不顯示,則要把標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤都重定向到/dev/null, 例如:
# ls 1>/dev/null 2>/dev/null
還有一種做法是將錯誤重定向到標(biāo)準(zhǔn)輸出,然后再重定向到 /dev/null,例如:
# ls >/dev/null 2>&1
注意:此處的順序不能更改,否則達(dá)不到想要的效果,此時先將標(biāo)準(zhǔn)輸出重定向到 /dev/null,然后將標(biāo)準(zhǔn)錯誤重定向到標(biāo)準(zhǔn)輸出,由于標(biāo)準(zhǔn)輸出已經(jīng)重定向到了/dev/null,因此標(biāo)準(zhǔn)錯誤也會重定向到/dev/null,于是一切靜悄悄:-)

由于使用nohup時,會自動將輸出寫入nohup.out文件中,如果文件很大的話,nohup.out就會不停的增大,這是我們不希望看到的,因此,可以利用/dev/null來解決這個問題。
nohup ./program >/dev/null 2>log &
如果錯誤信息也不想要的話:

nohup ./program >/dev/null 2>&1 &






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1