月曜日の朝、私はssh
のボックスにログインし、次のコマンドを実行しました。
tail -f /var/log/foo/bar.log | grep something_interesting &
その日の後半のある時点で、Ctrl + Dを押してログアウトしました。
金曜日に同じボックスにログインしたところ、tail
プロセスがまだ実行されていることがわかりました。私がログアウトしたとき、彼らがやめることを期待していました。
さらに掘り下げると、shopt huponexit
は、そのボックス、および私が試した他のすべてのLinuxボックス、および私が試した1つのMac OSXボックスではoff
に設定されています。
これがデフォルトでoff
ではなくon
になり始めたのはいつですか?
Bash 2.02では、導入時にデフォルトでオフになっています。
@@ -119,6 +123,10 @@ int interactive = 0;
/* Non-zero means that the Shell was started as an interactive Shell. */
int interactive_Shell = 0;
+/* Non-zero means to send a SIGHUP to all jobs when an interactive login
+ Shell exits. */
+int hup_on_exit = 0;
+
http://git.savannah.gnu.org/cgit/bash.git/commit/Shell.c?id=cce855bc5b117cb7ae70064131120687bc69fac