Linux 環境下在背景執行程式
2021, Mar 03
在 Linux bash 操作下應該很常會有這種需求,尤其是在 ssh 連線下需要執行程式的同時去做其他事,如果為此多開 terminal 去連線也蠻蠢的,下面記錄一下 linux 背景執行的一些指令
背景執行
<cmd> &
# Output
# [1] 135
把 cmd 放到背景執行,並輸出 PID
然後藉由下面指令,查看目前在背景執行的 process
jobs -l
如果想要把背景程式搬回到前景可以透過
fg # 將第一個背景程式搬到前景
fg %2 # 將第二個背景程式搬到前景
如果想要把前景在轉回背景請先鍵入 ctrl+z
暫停 process 然後輸入
bg # 將第一個暫停的程式回到背景執行
bg %2 # 將第二個暫停的程式回到背景執行
如果要結束背景程式請直接 kill
kill -9 <PID>
output
如果希望背景程式的 stdout 可以被查看,可以將 stdout 寫入到檔案中
<cmd> &> output.log &
這樣該程式的輸出就會被持續寫入到 output.log 中了
延伸閱讀
如果說需要在離開 ssh 連線之後還能持續運行的話可以參考