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信号を受信し、それに応じてアクションを実行するのを防ぎます。nohup
java