3 回答

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

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

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