martin f krafft <[email protected]> writes:

> tags 563727 patch
> thanks

> Indeed:

> diff -u /tmp/console-screen.sh /etc/init.d/console-screen.sh
> --- /tmp/console-screen.sh      2010-01-05 11:42:38.000000000 +1300
> +++ /etc/init.d/console-screen.sh       2010-01-05 11:42:58.000000000 +1300
> @@ -82,11 +82,10 @@
>      CONSOLE_TYPE=`fgconsole 2>/dev/null` || return 0
>  
>      if [ ! $CONSOLE_TYPE = "serial" ]  ; then
> -       readlink /proc/self/fd/0 | grep -q -e /dev/vc -e '/dev/tty[^p]' -e 
> /dev/console
> -       if [ $? -eq 0 ] ; then
> -           VT="yes"
> -           reset_vga_palette
> -       fi
> +      if readlink /proc/self/fd/0 | grep -q -e /dev/vc -e '/dev/tty[^p]' -e 
> /dev/console; then
> +       VT="yes"
> +       reset_vga_palette
> +      fi
>      fi
>  
>      [ $VT = "no" ] && return 0

I believe change in the previous version to add set -e should also be
undone.  Init scripts should in general not use set -e.  I opened a bug on
Policy a while back to make that clearer.  See, for instance, the comment
in /etc/init.d/skeleton.

Many common operations that one wants to do in an init script, such as
starting a daemon and checking its return status, or things like the above
are not set -e clean.  Neither are the LSB functions to output status of
init scripts starting, nor is there really any reason to go to the effort
of making them so.

For init scripts, explicitly checking the return status where it matters
is more robust.  set -e often results in strange and difficult-to-debug
failures when used in init scripts.

-- 
Russ Allbery ([email protected])               <http://www.eyrie.org/~eagle/>



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

Reply via email to