プロセスを中断して現在のシェルの前景にインポートする方法を知っていますが、シェルAで実行されているプロセスがあるかどうかわかりません。
3番目のツールを使わずにscreen
これを行う方法はありますか?
私の考えでは、フォアグラウンドで一時停止してからやり直す必要があると思いますが、どうすればいいかわかりません。
答え1
この効果を得るには、通常、次の 2 つのタスクを実行する必要があります。
プロセスを新しいシェルにリセットします。
私が知っている限り、基本的にこれを行う方法はありません。私が知っている限り、UNIXでプロセスを再び親にする方法は1つだけで、元の親プロセスが待機せずに終了する場合にのみ発生します。この場合、プロセス(孤立プロセス)は
init
プロセスID 1の親として再割り当てされます。ただし、元の親プロセスや新しい親プロセスを終了したくないため、これは役に立ちませんinit
。SIGTSTP
権限のある人は誰でも同じプロセスにシグナルを送信できるため、そのSIGCONT
コマンドSIGINT
を使用してkill
そのシグナルをプロセス(またはプロセスグループ)に送信して、ジョブの一時停止、継続、中断などの効果をシミュレートできます。新しいシェルはそれを認識せず、プロセスグループの状態について通知されないため、ジョブ制御機能を使用して追跡することはできません。スタジオをリダイレクトします。プロセスのstdioがプロセスが開始された端末に接続される可能性があるため、それを新しいシェルが実行されている端末に転送したい場合があります。元の出力をファイルまたは別の場所にリダイレクトしていない場合。