3 回答

TA貢獻1772條經驗 獲得超5個贊
使用bash 的作業控制將流程發送到后臺:
Ctrl+ Z停止(暫停)程序并返回外殼。
bg
在后臺運行它。disown -h [job-spec]
其中[job-spec]是作業編號(例如%1
第一個正在運行的作業;請使用jobs
命令查找您的編號),以便在終端關閉時不會終止該作業。

TA貢獻1906條經驗 獲得超10個贊
假設由于某種原因Ctrl+ Z也無法正常工作,請轉到另一個終端,找到進程ID(使用ps)并運行:
kill -SIGSTOP PID
kill -SIGCONT PID
SIGSTOP將暫停該過程并SIGCONT在后臺繼續該過程。因此,現在關閉兩個終端都不會停止您的過程。

TA貢獻1797條經驗 獲得超4個贊
從外殼程序中分離正在運行的作業的命令(=使之成為nohup)是disown一個基本的外殼程序命令。
從bash-manpage(man bash):
放棄[-ar] [-h] [jobspec ...]
如果沒有選項,則會從活動作業表中刪除每個作業規范。如果指定了-h選項,則不會從表中刪除每個作業規范,而是將其標記為如果外殼程序收到SIGHUP則不會將SIGHUP發送給作業。如果不存在jobspec,并且-a和-r選項均未提供,則使用當前作業。如果未提供jobspec,則-a選項表示刪除或標記所有作業;不帶jobspec參數的-r選項將操作限制為正在運行的作業。除非jobspec沒有指定有效的作業,否則返回值為0。
這意味著,一個簡單的
disown -a
將從作業表中刪除所有作業,并使它們不再工作
- 3 回答
- 0 關注
- 1202 瀏覽
添加回答
舉報