過去に、例えば、rails s
BashでRuby on Railsサーバーを( を使って)実行し、SSH接続した時にインターネット接続が中断されたとしたら、
- Ruby on Railsサーバーが停止する
- Ruby on Rails サーバーは実際には実行し続けていたため (VPN が切断されたためだと思います)、 を実行し
ps ux
てから関連するプロセスを 1 つずつ終了する必要がありました... 少し面倒でした。
(1) または (2) のいずれかが発生する可能性はありますか? 明確に定義された動作はありますか? たとえば、VPN ではなく、ssh が切断された場合は (1) ですが、VPN の場合は (1) または (2) のいずれかになりますか?
tmux
PS : Rails サーバーを実行する必要がある場合は、を使用するように切り替えました。これにより、戻ってtmux a -t foo
サーバーに再度アタッチし、必要に応じて CTRL-C を押すだけで済みます。
答え1
はい、シェルに関連付けられたプロセスはシグナル hup を受信します。そのようにプログラムされている場合は無視できます。man を参照してくださいnohup
。
たとえば、nohup command
コマンドを実行して hup が発生しないようにします。ただし、stdin、stdout、stderr もリダイレクトされます。
およびも参照してくださいdisown
。&
完全に切断するnohup > /dev/null command & disown