親プロセスからプロセスを分離する方法は? [コピー]

親プロセスからプロセスを分離する方法は? [コピー]

重複の可能性:
実行中のプロセスを拒否し、それを新しいスクリーンシェルに接続する方法は?

問題は、プロセスがアクティブなシェル内の操作ではないことです(Xシステムがクラッシュしてリモートからログインしたため)。つまり、 、 、disown& などを意味します。動作しません。nohupCTRL+Zbgscreen

やる気 GNOME端末内で長期実行ジョブを開始しました。私のXシステムがクラッシュしたので、親システムから切り離したいと思います。 Xシステムをシャットダウンすると、Gnome Desktop + Gnome Terminal +私の大切なスクリプトも失われるのではないかと心配です。したがって、リモートでログインしてスクリプトプロセスを保存し、Xを再起動できます。どうすればいいですか?

答え1

ジョブの実行に使用するスクリプト言語に応じて、次のものを使用できます。

setpgrp()
Perl: setpgrp PID, PGRP

起動したら、制御端末が実行中のプロセスを損なうことなく終了できるように、制御端末で実行中のプロセスを切り離します。

ここで説明した内容に基づいてGnome端末を実行し、そこから作業を開始して制御端末とシェルを持つようになるので、正常にnohup動作します。

関連情報