在終端界面啓動程序後,默認請求下,當前終端爲被啓動程序的標準輸入及輸出端,而且終端被程序佔用,把程序設成後臺進程須要有如下幾個步驟:web
CTRL + Z
設置暫停程序bg
設置程序後天運行jobs
列出當前界面的任務disown %1
設置任務1的父進程再也不屬於當前終端界面例子以下,t.sh爲被啓動的程序bash
#!/bin/bash #t.sh IDX=1 while [ $IDX -gt 0 ];do echo $IDX IDX=$[$IDX + 1]; sleep 1 done
啓動t.sh
svg
➜ tmp ./t.sh 1 2 3 4
CTRL + Z
暫停t.shspa
➜ tmp ./t.sh 1 2 3 4 5 ^Z [1] + 7428 suspended ./t.sh
bg
設置t.sh
後臺運行code
➜ tmp ./t.sh 1 2 3 4 5 ^Z [1] + 7428 suspended ./t.sh ➜ tmp bg [1] + 7428 continued ./t.sh 6 ➜ tmp 7 8 9 10
jobs
列出當前終端的全部任務xml
➜ tmp jobs [1] + running ./t.sh
disown %1
使得任務1與當前終端脫鉤
再次使用jobs
查看當前任務爲空
exit
退出當前終端
在新的終端中查看,t.sh
依然在運行token
➜ ~ ps ax | grep t.sh 7428 ? S 0:00 /bin/bash ./t.sh