Linux 下nohup 和 有什麼聯絡呢?

2021-09-11 21:22:04 字數 1258 閱讀 5519

背景

一直沒搞清楚 nohup 與 & 的區別, 看著公司裡遺留的shell, 也就稀里糊塗地用著… 這是很糟糕的態度

結論放前面

&使程序在後台執行, 預設輸出到標準輸出(即當前螢幕), 除非重定向輸出.

此時忽略 sigint 訊號.

若關閉會話, 則程序會結束

nohup

程序仍舊在前台跑, 預設輸出到 nohup.out .

此時程序忽略 sighup 訊號, 關閉會話不影響程序.

ctrl+c會使程序中斷

nohup + &

程序在後台跑, 忽略 sigint, sighup 訊號.

測試repeat=$

echo 迴圈次數 $repeat

counter=0

while [ $counter -lt rep

eat]

doec

ho

第repeat ]   do   echo 第

repeat

]doe

cho第

次迴圈let 「counter ++」

sleep 1

done

echo 結束迴圈

直接執行

[root@linuxidc tmp]# sh test.sh

使程序在後台跑, 輸出被重定向到指定檔案

可用 jobs -l 獲取當前的所有後台程序

[root@linuxidc tmp]# jobs -l

[2]+ 113043 running sh test.sh > /dev/null &

單獨使用 nohup

[root@linuxidc tmp]# nohup sh test.sh > test.out 2>&1

執行後是在前端跑, 若關閉會話, 程序不受影響.

但此時 ctrl+c會結束程序.

nohup + &

[root@linuxidc tmp]# nohup sh test.sh &

[2] 112987

[root@linuxidc tmp]# nohup: 忽略輸入並把輸出追加到"nohup.out"

[root@linuxidc tmp]#

忽略 ctrl+c 以及 會話關閉的影響, 程序可以在後台持續執行.

若會話未關閉, 可通過 jobs -l 檢視當前該程序

[root@linuxidc tmp]# jobs -l

[1]+ 112987 running nohup sh test.sh &

Linux下程式後台執行 nohup和

一 執行python程式命令後面加 比如 python test.py log.txt 其中 log.txt 是可選項,用於將test.py程式輸出結果定向輸出到log.txt檔案中 注意 這種方式當斷開ssh連線後程式會終止執行。二 nohup指令執行python程式 不結束通話執行任務,no h...

Linux下 vi 和 vim 有什麼區別

vim是vi的增強版,完全相容vi。vim優勢主要體現在以下幾個方面 1 多級撤消 我們知道在vi裡,按u只能撤消上次命令,而在vim裡可以無限制的撤消。2 易用性 vi只能執行於unix類中,而vim不僅可以執行於unix,windows mac等多操作平台。3 語法加亮 vim可以用不同的顏色來...

Linux下通過nohup和後台執行程式

後台執行 結合兩者 nohup命令 如果你正在執行乙個程序,而且你需要在退出帳戶時該程序還不會結束,那麼可以使用nohup命令。該命令可以在你退出帳戶 關閉終端之後繼續執行相應的程序。nohup 是no hang up的縮寫,就是不結束通話的意思。nohup 命令執行由 command引數和任何相關...