Bash如何關閉終端而不殺死其孩子(不先執行
如何關閉終端而不殺死其孩子(不先執行screen
)?
有時我在 gnome-terminal 中執行一個應用程序,但後來我突然不得不重新啟動 gnome 或其他東西。我想這個問題的答案也很有用,然後我想在發生某些事情的地方斷開與 SSH 的連接。
Gnome 的終端樹如下所示:
gnome-terminal bash some-boring-process
我可以“分離” (或從 bash 分離
bash
並將其輸出重定向到某處)嗎?如果我只是 kill ,將被殺死到它的所有子程序gnome-terminal``some-boring-process``gnome-terminal``bash
如果
some-boring-process
在您目前的 bash 會話中執行:
- 停止它
ctrl-z
給你 bash 提示- 把它放在後台
bg
- 記下作業編號,或使用
jobs
命令disown -h %1
使用(替換那裡的實際工作編號)從這個 bash 會話中分離程序。這對重定向輸出沒有任何作用——當你啟動無聊的過程時,你必須考慮到這一點。
$$ Edit $$似乎有一種方法可以重定向它https://gist.github.com/782263 但說真的,看看螢幕。我在遠端伺服器上安裝了 shell,這些 shell 已經執行了幾個月。
看起來像這樣:
$ sleep 999999 ^Z [1]+ Stopped sleep 999999 $ bg [1]+ sleep 999999 & $ disown -h %1