diff options
-rw-r--r-- | event.d/rcS | 20 | ||||
-rw-r--r-- | 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 + |