Am Montagmorgen habe ich mich bei einer Box angemeldet ssh
und den folgenden Befehl ausgeführt:
tail -f /var/log/foo/bar.log | grep something_interesting &
Irgendwann später am Tag habe ich mich durch Drücken von Strg+D abgemeldet.
Am Freitag habe ich mich bei derselben Box angemeldet und festgestellt, dass die tail
Prozesse immer noch liefen. Ich hatte erwartet, dass sie beendet worden wären, als ich mich abgemeldet habe.
Bei genauerem Hinsehen stellt sich heraus, dass es auf dieser Box und auf allen anderen Linux-Boxen, die ich ausprobiert habe, und auf der einen Mac OS X-Box, die ich ausprobiert habe, shopt huponexit
auf eingestellt ist .off
Seit wann wird standardmäßig anstelle off
von verwendet on
?
Antwort1
Bei seiner Einführung in Bash 2.02 war es standardmäßig deaktiviert:
@@ -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