Package: sysv-rc
Version: 2.86.ds1-5
Severity: serious

Debian Policy states (ยง9.3.1):

   "Also, if the script name ends `.sh', the script will be sourced in
    runlevel `S' rather that being run in a forked subprocess, but will
    be explicitly run by `sh' in all other runlevels".

This could probably be achieved with the attached patch, although there
are quite a few instances in /etc/init.d/*.sh scripts where "exit" is
called.  These scripts need to be changed to use "return"* appropriately
before the behaviour is changed.

Note: I believe that "return" should work to exit from a script both
when sourced and when executed but perhaps someone with a copy of POSIX
could confirm.

--bod

--- /etc/init.d/rc.orig 2005-11-20 08:43:41.000000000 +1100
+++ /etc/init.d/rc      2005-11-20 08:55:10.000000000 +1100
@@ -37,12 +37,14 @@
     action=$1
     shift
     scripts="$@"
+    sh=sh
+    [ S = "$runlevel" ] && sh=.
     case "$CONCURRENCY" in
        none)
            for script in $scripts ; do
                case "$script" in
                  *.sh)
-                     $debug sh "$script" $action
+                     $debug $sh "$script" $action
                      ;;
                  *)
                      $debug "$script" $action


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to