轉自:http://blog.chinaunix.net/u/27383/showart_1087273.html
使用nohup讓程式永遠背景運作
Unix/Linux下一般比如想讓某個程式在背景運作,很多都是使用 & 在程式結尾來讓程式自動運作。比如我們要運作mysql在背景:
/usr/local/mysql/bin/mysqld_safe --user=mysql &
但是加入我們很多程式并不象mysqld一樣做成守護程序,可能我們的程式隻是普通程式而已,一般這種程式使用 & 結尾,但是如果終端關閉,那麼程式也會被關閉。但是為了能夠背景運作,那麼我們就可以使用nohup這個指令,比如我們有個test.php需要在背景運作,并且希望在背景能夠定期運作,那麼就使用nohup:
nohup /root/test.php &
提示:
[~]$ appending output to nohup.out
嗯,證明運作成功,同時把程式運作的輸出資訊放到目前目錄的 nohup.out 檔案中去。
附:nohup指令參考
nohup 指令
用途:不挂斷地運作指令。
文法:nohup Command [ Arg ... ] [ & ]
描述:nohup 指令運作由 Command 參數和任何相關的 Arg 參數指定的指令,忽略所有挂斷(SIGHUP)信号。在登出後使用 nohup 指令運作背景中的程式。要運作背景中的 nohup 指令,添加 & ( 表示“and”的符号)到指令的尾部。
無論是否将 nohup 指令的輸出重定向到終端,輸出都将附加到目前目錄的 nohup.out 檔案中。如果目前目錄的 nohup.out 檔案不可寫,輸出重定向到 $HOME/nohup.out 檔案中。如果沒有檔案能建立或打開以用于追加,那麼 Command 參數指定的指令不可調用。如果标準錯誤是一個終端,那麼把指定的指令寫給标準錯誤的所有輸出作為标準輸出重定向到相同的檔案描述符。
退出狀态:該指令傳回下列出口值:
126 可以查找但不能調用 Command 參數指定的指令。
127 nohup 指令發生錯誤或不能查找由 Command 參數指定的指令。
否則,nohup 指令的退出狀态是 Command 參數指定指令的退出狀态。
nohup指令及其輸出檔案
nohup指令:如果你正在運作一個程序,而且你覺得在退出帳戶時該程序還不會結束,那麼可以使用nohup指令。該指令可以在你退出帳戶/關閉終端之後繼續運作相應的程序。nohup就是不挂起的意思( n ohang up)。
該指令的一般形式為:nohup command &
使用nohup指令送出作業
如果使用nohup指令送出作業,那麼在預設情況下該作業的所有輸出都被重定向到一個名為nohup.out的檔案中,除非另外指定了輸出檔案:
nohup command > myout.file 2>&1 &
在上面的例子中,輸出被重定向到myout.file檔案中。
使用 jobs 檢視任務。
使用 fg %n 關閉。
另外有兩個常用的ftp工具ncftpget和ncftpput,可以實作背景的ftp上傳和下載下傳,這樣我就可以利用這些指令在背景上傳和下載下傳檔案了.