4
バックグラウンドプロセスはログオフ時にSIGHUPを取得しますか?
これは、この質問のフォローアップです。 さらにいくつかのテストを実行しました。これが物理コンソールで行われてもSSHで行われても、実際には問題ではないように見えますが、これはSCPだけでは起こりません。私もそれをテストしましたcat /dev/zero > /dev/null。動作はまったく同じです。 使用してバックグラウンドでプロセスを起動します&(または、それが使用し始めています後にバックグラウンドでそれを置くCTRL-Zとbg)。これはを使用せずにnohup行われます。 ログオフ。 再度ログオンします。 プロセスはまだそこにあり、楽しく実行されており、現在はの直接の子ですinit。 を送信すると、SCPとCATの両方がすぐに終了することを確認できSIGHUPます。これを使用してテストしましたkill -HUP。 そのため、少なくともバックグラウンドプロセスにはログオフ時にSIGHUPが送信されないように見えます(明らかな理由により、フォアグラウンドプロセスではテストできません)。 これは、当初VMware ESX 3.5(RedHatベース)のサービスコンソールで発生しましたが、CentOS 5.4で正確に複製することができました。 質問は、やはり次のとおりです。ログオフ時に、バックグラウンドで実行されている場合でも、SIGHUPをプロセスに送信するべきではありませんか?なぜこれが起こらないのですか? 編集 straceカイルの答えに従って、私はで確認しました。 私は期待していたように、プロセスは取得していない任意のそれが開始されたシェルからログオフするときに信号を。これは、サーバーのコンソールを使用する場合とSSHを使用する場合の両方で発生します。