SSHシェルで実行されるプログラムがあります。一時停止して再び戻ったときに実行の一時停止を解除できるようにしたいです。
私が考えた1つの方法は、所有権をスクリーンシェルに転送してそこで実行し続けることです。
続行する他の方法はありますか?
ベストアンサー1
以下を使用して、シェルでプログラムの「所有権」を取り消すことができます。disown
内蔵:
# press Ctrl+Z to suspend the program
bg
disown
SIGHUP
ただし、これはシェルが終了したときにプログラムにシグナルを送信しないようにシェルに指示するだけです。プログラムは通常、標準入力、出力、およびエラーストリームとして端末へのすべての接続を維持します。他の端末に再接続できません。 (画面各ウィンドウの端末をシミュレートして動作するため、プログラムは画面ウィンドウに接続されます。 )
プログラムをデバッガーに接続して(たとえば、次のように)、ファイル記述子を別のファイルに再接続できます。ptrace
)そしてそれを呼び出すopen
と、それを行うツールがあります。可能性は次のとおりです(回答から収集されたリンクdup
close
実行中のプロセスを拒否し、それを新しいスクリーンシェルに接続する方法は?そしてすでに起動しているプロセスをnohup / screenできますか?):