長時間運算程式必須在背景穩定執行,不受 SSH 斷線影響。本文比較五種背景執行方式與作業控制指令。
./program > output.log 2>&1 &
nohup ./program > output.log 2>&1 &
nohup.out,可自行導向。setsid ./program > output.log 2>&1 &
./program > output.log 2>&1 & disown -h %1 # %1 為 jobs 號碼
(./program > output.log 2>&1 &)
# 建立離線 session screen -dmS mysession # 重新連接 screen -r mysession # 在 session 內執行任意程式,關閉視窗不影響
| 指令 | 功能 |
|---|---|
jobs -l | 列出背景作業與 PID |
fg %n | 將作業 n 切回前景 |
bg %n | 將暫停作業 n 切回背景 |
Ctrl+Z | 暫停前景作業 |
Ctrl+C | 終止前景作業 |
nohup 或 setsid。screen / tmux。Ctrl+Z → bg → disown -h %n。善用背景執行技巧,讓長跑任務不再因斷線而前功盡棄。