
月曜日の朝、ボックスにログインしてssh
次のコマンドを実行しました。
tail -f /var/log/foo/bar.log | grep something_interesting &
その日の後半のある時点で、Ctrl + D を押してログアウトしました。
金曜日に同じボックスにログインしたところ、tail
プロセスがまだ実行中であることがわかりました。ログアウトしたときにプロセスは終了していると思っていました。
さらに調べてみると、そのボックス、私が試した他のすべての Linux ボックス、そして私が試した 1 つの Mac OS X ボックスでは にshopt huponexit
設定されているようです。off
off
いつから ではなくがデフォルトになったのですかon
?
答え1
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=cce855bc5b117cb7ae70064131120687bc69fac0