From 951e577ef3b59b24f7366d08ce738980f327cf5d Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Fri, 25 Apr 2008 14:16:31 -0400 Subject: Import from event-compat-sysv-0.3.9-14.fc9 - Rework rc1, rcS, rcS-sulogin to use post-stop to avoid spurious 'rcS killed' messages (#444001) - Allow 's' for single-user mode (#443554) --- event.d/rc1 | 8 ++++++++ event.d/rcS | 7 ++++--- event.d/rcS-sulogin | 11 ++++++----- 3 files changed, 18 insertions(+), 8 deletions(-) (limited to 'event.d') diff --git a/event.d/rc1 b/event.d/rc1 index 35de4d3e..5153c8c2 100644 --- a/event.d/rc1 +++ b/event.d/rc1 @@ -1,6 +1,9 @@ # rc1 - runlevel 1 compatibility # # This task runs the old sysv-rc runlevel 1 ("single-user") scripts. +# /etc/rc.d/rc 1 will run the /etc/rc.d/rc1.d scripts. +# telinit S will run whichever task has "start on runlevel S", +# normally /etc/event.d/rcS-sulogin start on runlevel 1 @@ -17,3 +20,8 @@ script exec /etc/rc.d/rc 1 end script +post-stop script + clear + echo "Telling INIT to go to single user mode." + exec telinit S +end script diff --git a/event.d/rcS b/event.d/rcS index 728ae396..619e1e6d 100644 --- a/event.d/rcS +++ b/event.d/rcS @@ -15,14 +15,15 @@ script /etc/rc.d/rc.sysinit 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) runlevel="S" ;; + -s|single|S|s) runlevel="S" ;; [1-9]) runlevel="$t" ;; esac done - telinit $runlevel + exec telinit $runlevel end script diff --git a/event.d/rcS-sulogin b/event.d/rcS-sulogin index 1a2f49e2..d74620db 100644 --- a/event.d/rcS-sulogin +++ b/event.d/rcS-sulogin @@ -1,18 +1,19 @@ # rcS-sulogin - "single-user" runlevel compatibility # -# This task runs the sulogin binary during "single-user" mode. +# This task runs /bin/bash during "single-user" mode, +# then continues to the default runlevel. start on runlevel S stop on runlevel console owner - script runlevel --set S >/dev/null || true - /bin/bash - + /bin/bash || true +end script +post-stop script runlevel=$(/bin/awk -F ':' '$3 == "initdefault" { print $2 }' /etc/inittab) [ -z "$runlevel" ] && runlevel="3" - telinit $runlevel + exec telinit $runlevel end script -- cgit v1.2.1