<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
當我們在Linux或Unix系統上執行一個長時間執行的命令或指令碼時,我們通常會遇到一個問題,那就是在終端關閉或者退出後,該程序也會隨之停止執行。在這種情況下,我們需要一種方式來讓程序在後臺執行,而不受終端關閉的影響。這時,nohup命令就派上用場了。
nohup
是Linux和Unix系統中的一個命令,其作用是在終端退出時,讓程序在後臺繼續執行。它的全稱為“no hang up”,意為“不掛起”。nohup
命令可以讓你在退出終端或關閉SSH連線後繼續執行命令。
nohup命令的基本語法如下:
nohup COMMAND [ARGS ...] [> output-file 2> error-file] &
其中的引數含義如下:
COMMAND
:需要在後臺執行的命令或指令碼。ARGS
:命令或指令碼的引數。> output-file
:輸出重定向到指定的檔案中。2> error-file
:錯誤資訊重定向到指定的檔案中。&
:將命令放在後臺執行。nohup命令的執行過程分為以下幾個步驟:
/dev/null
裝置中,避免被關閉終端的訊號所中斷。使用nohup命令非常簡單,按照上面的基本語法即可。以下是一些nohup命令的用法範例:
要在後臺執行命令,只需要在命令列中輸入以下命令即可:
nohup COMMAND &
例如,在後臺執行一個Bash指令碼:
nohup bash test.sh &
nohup bash test.sh > stdout.txt &
nohup bash test.sh 2> stderr.txt &
1. 重定向到同一檔案
nohup bash test.sh > output.txt 2>&1 &
2. 重定向到不同檔案
nohup bash test.sh > stdout.txt 2> stderr.txt &
3. 一個更為複雜的例子,重定向標準輸入(stdin):
nohup ./myprogram > foo.out 2> foo.err < /dev/null &
這裡多出來一個< /dev/null
,意思是將標準輸入重定向到/dev/null
,以確保程式不會從標準輸入中讀取任何資料。
這個是為了解決一個實際問題:SSH對談常常拒絕登出(或者掛起),因為它不願意去丟失與後臺job(s)進行互動的資料。當遇到這個問題的時候,可以使用上面的命令,通過三次重定向來解決。
使用 jobs
命令可以檢視當前 shell 中後臺執行的任務列表,包括任務編號、狀態和命令。
例如,我們在後臺執行一個sleep 1000
命令,使用jobs
命令檢視:
$ jobs [1]+ Running nohup sleep 1000 &
其中,方括號中的數位表示任務編號,加號或減號表示任務的優先順序,Running
表示任務正在後臺執行。除此之外,還有其他可能的狀態,包括 Stopped
(已停止)、Done
(已完成)等。
我們還可以使用 fg
命令將一個後臺任務移動到前臺繼續執行,例如:
$ fg %1
這個命令會將任務編號為 1 的任務移動到前臺,繼續執行。如果希望將任務暫停或恢復,可以使用 Ctrl-Z
鍵,在當前 shell 中傳送 SIGTSTP
訊號。
$ fg %1 nohup sleep 1000 ^Z [1]+ Stopped nohup sleep 1000
此時如果想要恢復執行,可以使用bg
命令:
$ bg %1 [1]+ nohup sleep 1000 &
如果想要殺死該任務,可以使用kill
命令:
$ kill %1 [1]+ Terminated nohup sleep 1000
如果你想殺死所有後臺任務,但是又覺得一個個地比較麻煩,可以使用disown
命令來解決:
$ disown -a
這個命令可以殺死所有後臺任務,但不會有任何提示,你可以通過jobs
命令來確認。
nohup
命令可以在後臺執行程式,即使終端關閉或斷開與遠端伺服器的連線也不會影響程式的執行。通過nohup
命令啟動的程序會忽略所有終端訊號,因此即使使用Ctrl+C
關閉終端,程序也不會停止。可以使用jobs
命令檢視後臺執行的程序,並使用fg
命令將程序切換到前臺執行。
nohup
非常適合用來執行一些需要長時間執行的指令碼或程式,比如Web伺服器,資料庫等。但需要注意的是,nohup
命令並不是完全避免了程序被中斷的可能,例如系統崩潰、程序錯誤等情況仍可能導致程序的中斷。
到此這篇關於一文帶你深入理解Linux中的nohup命令的文章就介紹到這了,更多相關Linux nohup命令內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45