nohupなしでbashでプログラム/プロセスを開始した場合、シェル/ターミナルが閉じた後でも後でプログラムを実行できますか?

nohupなしでbashでプログラム/プロセスを開始した場合、シェル/ターミナルが閉じた後でも後でプログラムを実行できますか?

bashでプログラム/プロセスが始まるときいいえ nohup、後で(追加操作を実行して)シェル/ターミナルが閉じた後でもこのプログラムを実行することは可能ですか?
ここに素晴らしい議論があります。nohup、disown、&の違い興味のある人がいる場合は見てください。

この質問では、プログラムがnohupなしで起動したときに観察した内容を共有したいと思います。

編集 - 元の質問を無視します。はい、disownプロセスの実行後にターミナル/シェルを終了することは重要ではないようです。プロセスが実行されているようです。元の端末が閉じた後もps -ef | grep javaプロセスが実行されていることがわかります。

ベストアンサー1

上記の制限により、端末を閉じた後もプロセスを実行し続ける方法はありません。なぜ?プロセスにもかかわらず、disown端末内のシェルはまだjava -jar myapp.jarプロセスの親です。disownシェルプロセスはHUP信号を送信しないように指示しますが、java端末を閉じるとbashプロセスが最初に終了し、シェルの親プロセスがそのjavaプロセスを継承します。その後、この新しい親プロセスはすべての継承されたプロセスをクリーンアップするためにHUP tpを送信し、高度なjava機能のみを使用してプロセスがHUP信号を受信し、それに応じてアクションを実行するのを防ぎます。nohupjava

おすすめ記事