回答:
この投稿が役立つ場合があります。推奨事項は次のとおりです。
悪いニュースは、当然のことながら、ということであるBGは、プロセスが実行されている同じシェルで実行される必要があるでしょう...しかし...それはすでにバックグラウンドにされる可能性があります。
本当に悪いニュースは、ということです勘当呼び出しは同じシェルで実行する必要があります。その場合、はい、あなたはめちゃくちゃです。しかし、よくわかりません。おそらくrootが強制的に切断することができます。
うーん。可能性のある良いニュース -んtcshの勘当を自動的に:
tcshが異常終了した場合、tcshは終了時にバックグラウンドで実行されているジョブを自動的に拒否します。
したがって、長期的なプロセスがすでにバックグラウンドで行われている場合、そのtcsh親を強制終了すると、プロセスを続行できるはずです。これで、プロセスは開始ターミナルから切断されました。(そうでない場合は、上記の「悪いニュース」を参照してください。)
残念ながら、これは画面ではないため、実際に再接続することはできません。あなたは多分(最初のリンクから)gdbでそれを偽造することができます:
[...]ダーティなハックにより、プロセスのstdout / stderr / stdinを再度開くことは不可能ではありません。
したがって、空白の画面ウィンドウ(たとえば、スリープを実行するウィンドウ)を作成できます。
そして、例えばgdbを使用してプロセスにアタッチし、いくつかの呼び出しを実行しますclose(0)
呼び出しclose(1)
呼び出しclose(2)
呼び出しopen( "/ dev / pts / xx"、...)
呼び出しdup(0)
dup(0)を呼び出す
detachプロセスの出力は画面に表示されます。それはその画面ターミナルに接続されないので、たとえば、[sic]はプロセスではなく「sleep」コマンドを強制終了しますが、OPにはそれで十分です。
そのプロセスにも「dup(1)を呼び出す」と「dup(2)を呼び出す」があるべきではないのではないかと思います...
bg
ます。
これらの質問は、Cryopidと呼ばれるプログラムを参考にしています。しかし、私はそれについての経験はありません。