![親プロセスからプロセスを分離する方法は? [コピー]](https://linux33.com/image/25050/%E8%A6%AA%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%81%8B%E3%82%89%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%82%92%E5%88%86%E9%9B%A2%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%AF%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
問題は、プロセスがアクティブなシェル内の操作ではないことです(Xシステムがクラッシュしてリモートからログインしたため)。つまり、 、 、disown
& などを意味します。動作しません。nohup
CTRL+Z
bg
screen
やる気 GNOME端末内で長期実行ジョブを開始しました。私のXシステムがクラッシュしたので、親システムから切り離したいと思います。 Xシステムをシャットダウンすると、Gnome Desktop + Gnome Terminal +私の大切なスクリプトも失われるのではないかと心配です。したがって、リモートでログインしてスクリプトプロセスを保存し、Xを再起動できます。どうすればいいですか?
答え1
ジョブの実行に使用するスクリプト言語に応じて、次のものを使用できます。
setpgrp()
Perl: setpgrp PID, PGRP
起動したら、制御端末が実行中のプロセスを損なうことなく終了できるように、制御端末で実行中のプロセスを切り離します。
ここで説明した内容に基づいてGnome端末を実行し、そこから作業を開始して制御端末とシェルを持つようになるので、正常にnohup
動作します。