回答:
アールからのserverfaultでこの答えを見つけました:
ただし、実際の問題については、もう1つ試すことができます。ターミナルからジョブを起動した後、ctrl- zとを入力してバックグラウンドにします
bg
。
その後、それの親シェルから仕事を切り離す-でbash
:disown -h %<jobid>
。その後、端末を安全に閉じることができ、ジョブの実行が継続されます。
そして、ロブ・ウェルズからの同じ質問からのこれ:
$ screen -S my_process
$ retty $(pgrep my_process)
/redraw
ServerFaultで重複が見つかりました。
その投稿にない別の解決策は、スクリーンセッションを開始した後にrettyを使用することです。
まさにそれを行うreptyrを見てください。githubページにはすべての情報があります。
reptyr-「再入力」のためのツール
プログラム。
reptyrは、既存の実行中のプログラムを取得して新しい端末に接続するためのユーティリティです。ssh経由で長時間実行されるプロセスを開始しましたが、終了する必要があり、中断したくないですか?画面を起動し、reptyrを使用してそれを取得し、sshセッションを終了して家に向かいます。
使用法
レプティルPID
「reptyr PID」は、ID PIDのプロセスを取得し、現在の端末に接続します。
接続後、プロセスは^ Cや^ Zを含む新しいターミナルから入力を受け取り、新しいターミナルに出力を書き込みます。(残念ながら、それをバックグラウンド化する場合、古い端末で「bg」または「fg」を実行する必要があります。これは、シェルにパッチを当てずに適切な方法で修正することはおそらく不可能です。)