From d78b58c6fb9110d78f8750b4d3779a401d2ebf92 Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Fri, 25 Apr 2008 16:55:17 -0400 Subject: Only run telinit for the default runlevel if we exit sanely (#444001, #444050) --- event.d/rcS | 20 +++++++++++--------- event.d/rcS-sulogin | 13 +++++++++---- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/event.d/rcS b/event.d/rcS index 619e1e6d..b01ddc57 100644 --- a/event.d/rcS +++ b/event.d/rcS @@ -17,13 +17,15 @@ script runlevel --reboot || true end script post-stop script - runlevel=$(/bin/awk -F ':' '$3 == "initdefault" { print $2 }' /etc/inittab) - [ -z "$runlevel" ] && runlevel="3" - for t in $(cat /proc/cmdline); do - case $t in - -s|single|S|s) runlevel="S" ;; - [1-9]) runlevel="$t" ;; - esac - done - exec telinit $runlevel + if [ "$UPSTART_EVENT" == "startup" ]; then + runlevel=$(/bin/awk -F ':' '$3 == "initdefault" { print $2 }' /etc/inittab) + [ -z "$runlevel" ] && runlevel="3" + for t in $(cat /proc/cmdline); do + case $t in + -s|single|S|s) runlevel="S" ;; + [1-9]) runlevel="$t" ;; + esac + done + exec telinit $runlevel + fi end script diff --git a/event.d/rcS-sulogin b/event.d/rcS-sulogin index d74620db..c7866b93 100644 --- a/event.d/rcS-sulogin +++ b/event.d/rcS-sulogin @@ -10,10 +10,15 @@ stop on runlevel console owner script runlevel --set S >/dev/null || true - /bin/bash || true + exec /bin/bash end script post-stop script - runlevel=$(/bin/awk -F ':' '$3 == "initdefault" { print $2 }' /etc/inittab) - [ -z "$runlevel" ] && runlevel="3" - exec telinit $runlevel + echo $* > /tmp/sulogin.$$ + set >> /tmp/sulogin.$$ + if [ "$1" = "S" ]; then + runlevel=$(/bin/awk -F ':' '$3 == "initdefault" { print $2 }' /etc/inittab) + [ -z "$runlevel" ] && runlevel="3" + exec telinit $runlevel + fi end script + -- cgit