私のシェルで始まったバックグラウンドタスクが親シェルとコントロールターミナルより長く続くのはなぜですか?

私のシェルで始まったバックグラウンドタスクが親シェルとコントロールターミナルより長く続くのはなぜですか?

人々はしばしば「&」が実行のためにプロセスをバックグラウンドに置きますが、端末が閉じられるとプロセスは終了します。しかし、私が知っている限り、私がバックグラウンドで送信するすべては、端末を閉じた後も長い間アクティブになります。たとえば、

$ tail -f /var/log/messages/ &

プロセスを開始したユーザーの下に他のプロセスがなくても、プロセスは引き続き実行され、すべての端末が消えてから古い。なぜそんなことですか?

ベストアンサー1

ただ推測してみてください(bash具体的):文書huponexitシェルオプションについては次のように言います。

設定されている場合、Bashは対話型ログインシェルの終了時にすべてのジョブにSIGHUPを送信します。

私のシステムではデフォルトでは設定されていないようです。確認できます

shopt -p huponexit

出力に-u

おすすめ記事