1. 程式人生 > >Nohup後臺執行程式

Nohup後臺執行程式

場景:我現在需要跑指令碼批量處理一些資料,但是我又不想盯著控制檯看這個指令碼的輸出結果,想把這些輸出結果記錄到一個日誌檔案裡面

方案:可以使用 Linux 的 nohup 命令,把程序掛起,後臺執行

用法:

$ nohup XXXXXX.sh >> /runtime/deletedata.log &

執行結果(這個數字是程序號):

>> [1] 13120

有時候可能會報一個提示:

$ nohup: ignoring input and redirecting stderr to stdout

這個影響不大,不用緊張,也可以加多一個 2>&1

就不會出現這個問題

用法:

$ nohup XXXXXX.sh >> /runtime/deletedata.log 2>&1 &

TIPS:命令最後面的 & 符號是切換到後臺去跑,退出終端也不會退出任務程序

執行這個命令之後呢,會輸出一個程序號,類似上面的輸出,可以使用 top 命令檢視執行中的程序,也可以用 ps -aux 檢視程序

想要終止這個程序的話只能殺死這個程序,使用 kill 指令處理

$ kill -9 程序號

TIPS:如果程序掛不起來,可能是埠被佔用了,自行排查處理便可