Linux的nohup指令

Jerry Kao
k2shouai
Published in
2 min readJul 18, 2018

當我們使用SSH遠端登入Linux執行程式又不想登出後程式不能繼續執行,就是我們使用nohup的時機!

nohup是由兩個字組成的命令:no-hup,hup指的是SIGHUP(hangup)這個信號,nohup就是忽略SIGHUP這個信號的意思。當我們從一個連線登出的時候,每個process都會收到一個SIGHUP信號,透過nohup所下達的命令就可以不受影響,繼續執行。

Example 1:

$ nohup abcd &
$ exit

說明:背景執行abcd這個程式.第二行執行exit登出系統後, abcd這個程式會繼續在背景執行直到完成

Example 2: (當我們想保留程式的輸出訊息時)

$ nohup ./myprogram > foo.out 2> foo.err < /dev/null &

這個範例代表

1.將myprogram的標準輸出輸出到foo.out

2.將標準錯誤輸出(2)輸出到foo.err

3.輸入為EOF

4.背景執行這個指令

Note : /dev/null:在類Unix系統中,/dev/null,或稱空裝置,是一個特殊的裝置檔案,它丟棄一切寫入其中的資料(但報告寫入操作成功),讀取它則會立即得到一個EOF[1]

Reference :

https://en.wikipedia.org/wiki/Nohup

http://dragonspring.pixnet.net/blog/post/33257496

--

--