天天看點

nohup 指令

用途 :LINUX指令用法,不挂斷地運作指令。
  文法 :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上傳和下載下傳,這樣我就可以利用這些指令在背景上傳和下載下傳檔案了。
jobs 顯示目前正在運作的任務ID号
bg %n把任務放在背景運作(n是任務ID号)
fg %n把任務放在前台運作(n是任務ID号)
^Z挂起一個任務
stop %n停止指定的背景任務(n是任務ID号)
要使一個任務在背景運作,可以鍵入需要執行的指令,在指令後面跟&符号。
例如,下面的指令行就是在背景執行find指令,在目前工作目錄查找名為core的所有檔案,然後列印每個core檔案的完整路徑名到一個名為list的新檔案中。
$ find . –name core > list &
shell将傳回一個用括号括起來的任務ID号和該任務的PID。可是使用任務ID号來控制任務,而PID是核心用于管理任務的。
使用jobs指令來列出目前任務
$ jobs
使用fg指令來把一個背景指令放到前台執行
$fg %l
要重新把該任務放在背景執行,首先使用control+z鍵來挂起該任務,然後再使用bg指令。
find . –name core > list
^Z
[1] + stopped(SIGTSTP)find . –name core > list &
$ jobs
[1] + stopped(SIGTSTP)find . –name core > list &
$ bg %1
[1] find . –name core > list &
$
要終止一個背景任務,使用指定的任務ID号作為stop指令的參數:
$ stop %1
[1] + stopped(SIGSTOP)  script1 &