Bash

如何關閉終端而不殺死其孩子(不先執行screen)?

  • April 17, 2020

有時我在 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 會話中執行:

  1. 停止它ctrl-z給你 bash 提示
  2. 把它放在後台bg
  3. 記下作業編號,或使用jobs命令
  4. 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

引用自:https://unix.stackexchange.com/questions/8469