nohup命令學習

perfychi發表於2013-04-18
(0)產生背景:

 Unix/Linux下一般比如想讓某個程式在後臺執行,很多都是使用 & 在程式結尾來讓程式自動執行。比如我們要執行mysql在後臺:

  /usr/local/mysql/bin/mysqld_safe --user=mysql &

  但是加入我們很多程式並不象mysqld一樣做成守護程式,可能我們的程式只是普通程式而已,一般這種程式使用 & 結尾,但是如果終端關閉,那麼程式也會被關閉。但是為了能夠後臺執行,那麼我們就可以使用nohup這個命

(1)定義:

nohup就是不結束通話的意思( no hang up),會忽略所有結束通話(SIGHUP)訊號。這種中斷訊號包括使用者登出退出,和使用者客戶端斷開連線等常見的中斷訊號

(2)作用:

nohup命令:如果你正在執行一個程式,而且你覺得在退出帳戶時該程式還不會結束,那麼可以使用nohup命令。該命令可以在你退出帳戶/關閉終端之後繼續執行相應的程式。

(3)語法
nohup Command [ Arg ... ] [ & ]

  描述:nohup 命令執行由 Command 引數和任何相關的 Arg 引數指定的命令,忽略所有結束通話(SIGHUP)訊號。在登出後使用 nohup 命令執行後臺中的程式。要執行後臺中的 nohup 命令,新增 & ( 表示“and”的符號)到命令的尾部。

(4)退出狀態


 退出狀態:該命令返回下列出口值:

  126 可以查詢但不能呼叫 Command 引數指定的命令。

  127 nohup 命令發生錯誤或不能查詢由 Command 引數指定的命令。

  否則,nohup 命令的退出狀態是 Command 引數指定命令的退出狀態。


(5)輸出檔案

如果使用nohup命令提交作業,那麼在預設情況下該作業的所有輸出都被重定向到一個名為nohup.out的檔案中,除非另外指定了輸出檔案:
nohup command > myout.file 2>&1 &

(6)檢視
 
    使用 jobs 檢視任務。

 使用 fg %n 關閉。









來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27042095/viewspace-758762/,如需轉載,請註明出處,否則將追究法律責任。

相關文章