]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
script: play well with csh when invoked from within /etc/csh.login
authorKarel Zak <kzak@redhat.com>
Thu, 8 Mar 2012 15:02:28 +0000 (16:02 +0100)
committerKarel Zak <kzak@redhat.com>
Thu, 8 Mar 2012 15:02:28 +0000 (16:02 +0100)
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=797888
Signed-off-by: Karel Zak <kzak@redhat.com>
term-utils/script.c

index 58f9790addc4df47e7223cefc64a2babc2884cfb..0d891b8ee7388a8a3bcaf42b8520f7c96b50dacf 100644 (file)
@@ -437,6 +437,16 @@ doshell(void) {
        else
                shname = shell;
 
+       /*
+        * When invoked from within /etc/csh.login, script spawns a csh shell
+        * that spawns programs that cannot be killed with a SIGTERM. This is
+        * because csh has a documented behaviour wherein it disables all
+        * signals when processing the /etc/csh.* files.
+        *
+        * Let's restore the default behavior.
+        */
+       signal(SIGTERM, SIG_DFL);
+
        if (cflg)
                execl(shell, shname, "-c", cflg, NULL);
        else