From 8159d78bb7d57483673da0bfbf49f74fd1671fec Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Wed, 9 Apr 2008 17:00:57 -0400 Subject: Fix serial to wait for rcS to complete as well runlevel isn't actually set when udev is run. Oops. --- event.d/serial | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'event.d') diff --git a/event.d/serial b/event.d/serial index 80695338..6869090e 100644 --- a/event.d/serial +++ b/event.d/serial @@ -4,6 +4,10 @@ stop on runlevel [016] instance pre-start script + while /bin/true ; do + LANG=C /sbin/initctl status rcS | grep -wq "rcS (stop) waiting" && break + sleep 1 + done while /bin/true ; do runlevel=$(/sbin/runlevel | /bin/awk '{ print $2 }') case "$runlevel" in -- cgit From ae9e1c75a5e24e4f2c9d60eb4b8838e0b043ec7d Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Fri, 25 Apr 2008 14:11:19 -0400 Subject: Import from event-compat-sysv-0.3.9-8.fc9 --- event.d/control-alt-delete | 8 ++++++++ event.d/prefdm | 12 ++++++++++++ event.d/rc-default | 22 ++++++++++++++++++++++ event.d/rc0 | 25 +++++++++++++++++++++++++ event.d/rc1 | 19 +++++++++++++++++++ event.d/rc2 | 20 ++++++++++++++++++++ event.d/rc3 | 20 ++++++++++++++++++++ event.d/rc4 | 20 ++++++++++++++++++++ event.d/rc5 | 20 ++++++++++++++++++++ event.d/rc6 | 23 +++++++++++++++++++++++ event.d/rcS | 25 +++++++++++++++++++++++++ event.d/rcS-sulogin | 25 +++++++++++++++++++++++++ event.d/sulogin | 18 ++++++++++++++++++ event.d/tty1 | 16 ++++++++++++++++ event.d/tty2 | 16 ++++++++++++++++ event.d/tty3 | 16 ++++++++++++++++ event.d/tty4 | 16 ++++++++++++++++ event.d/tty5 | 16 ++++++++++++++++ event.d/tty6 | 16 ++++++++++++++++ 19 files changed, 353 insertions(+) create mode 100644 event.d/control-alt-delete create mode 100644 event.d/prefdm create mode 100644 event.d/rc-default create mode 100644 event.d/rc0 create mode 100644 event.d/rc1 create mode 100644 event.d/rc2 create mode 100644 event.d/rc3 create mode 100644 event.d/rc4 create mode 100644 event.d/rc5 create mode 100644 event.d/rc6 create mode 100644 event.d/rcS create mode 100644 event.d/rcS-sulogin create mode 100644 event.d/sulogin create mode 100644 event.d/tty1 create mode 100644 event.d/tty2 create mode 100644 event.d/tty3 create mode 100644 event.d/tty4 create mode 100644 event.d/tty5 create mode 100644 event.d/tty6 (limited to 'event.d') diff --git a/event.d/control-alt-delete b/event.d/control-alt-delete new file mode 100644 index 00000000..35cb1305 --- /dev/null +++ b/event.d/control-alt-delete @@ -0,0 +1,8 @@ +# control-alt-delete - emergency keypress handling +# +# This task is run whenever the Control-Alt-Delete key combination is +# pressed. Usually used to shut down the machine. + +start on control-alt-delete + +exec /sbin/shutdown -r now "Control-Alt-Delete pressed" diff --git a/event.d/prefdm b/event.d/prefdm new file mode 100644 index 00000000..e53d18d8 --- /dev/null +++ b/event.d/prefdm @@ -0,0 +1,12 @@ +# prefdm - preferred display manager +# +# Starts gdm/xdm/etc by preference + +start on stopped rc5 + +stop on runlevel [!5] + +console output +script + exec /etc/X11/prefdm -nodaemon +end script diff --git a/event.d/rc-default b/event.d/rc-default new file mode 100644 index 00000000..9160062b --- /dev/null +++ b/event.d/rc-default @@ -0,0 +1,22 @@ +# rc - runlevel compatibility +# +# This task guesses what the "default runlevel" should be and starts the +# appropriate script. + +start on stopped rcS + +script + runlevel --reboot || true + + RL="2" + if [ -r /etc/inittab ]; then + RL="$(sed -n -e "/^id:[0-9]*:initdefault:/{s/^id://;s/:.*//;p}" /etc/inittab || true)" + fi + for t in $(cat /proc/cmdline); do + case $t in + -s|single|S) RL="S" ;; + [1-9]) RL="$t" ;; + esac + done + telinit $RL +end script diff --git a/event.d/rc0 b/event.d/rc0 new file mode 100644 index 00000000..63de616b --- /dev/null +++ b/event.d/rc0 @@ -0,0 +1,25 @@ +# rc0 - runlevel 0 compatibility +# +# This task runs the old sysv-rc runlevel 0 ("halt/poweroff") scripts with +# the decision as to whether to halt or power off the system left up to the +# script (and thus /etc/default/poweroff). + +start on runlevel 0 + +stop on runlevel + +console output +script + set $(runlevel || true) + if [ "$2" != "0" ] && [ "$2" != "6" ]; then + set $(runlevel --set 0 || true) + fi + + if [ "$1" != "unknown" ]; then + PREVLEVEL=$1 + RUNLEVEL=$2 + export PREVLEVEL RUNLEVEL + fi + + exec /etc/rc.d/rc 0 +end script diff --git a/event.d/rc1 b/event.d/rc1 new file mode 100644 index 00000000..35de4d3e --- /dev/null +++ b/event.d/rc1 @@ -0,0 +1,19 @@ +# rc1 - runlevel 1 compatibility +# +# This task runs the old sysv-rc runlevel 1 ("single-user") scripts. + +start on runlevel 1 + +stop on runlevel + +console output +script + set $(runlevel --set 1 || true) + if [ "$1" != "unknown" ]; then + PREVLEVEL=$1 + RUNLEVEL=$2 + export PREVLEVEL RUNLEVEL + fi + + exec /etc/rc.d/rc 1 +end script diff --git a/event.d/rc2 b/event.d/rc2 new file mode 100644 index 00000000..1e0ab677 --- /dev/null +++ b/event.d/rc2 @@ -0,0 +1,20 @@ +# rc2 - runlevel 2 compatibility +# +# This task runs the old sysv-rc runlevel 2 ("multi-user") scripts. It +# is usually started by the telinit compatibility wrapper. + +start on runlevel 2 + +stop on runlevel + +console output +script + set $(runlevel --set 2 || true) + if [ "$1" != "unknown" ]; then + PREVLEVEL=$1 + RUNLEVEL=$2 + export PREVLEVEL RUNLEVEL + fi + + exec /etc/rc.d/rc 2 +end script diff --git a/event.d/rc3 b/event.d/rc3 new file mode 100644 index 00000000..785c98aa --- /dev/null +++ b/event.d/rc3 @@ -0,0 +1,20 @@ +# rc3 - runlevel 3 compatibility +# +# This task runs the old sysv-rc runlevel 3 (user defined) scripts. It +# is usually started by the telinit compatibility wrapper. + +start on runlevel 3 + +stop on runlevel + +console output +script + set $(runlevel --set 3 || true) + if [ "$1" != "unknown" ]; then + PREVLEVEL=$1 + RUNLEVEL=$2 + export PREVLEVEL RUNLEVEL + fi + + exec /etc/rc.d/rc 3 +end script diff --git a/event.d/rc4 b/event.d/rc4 new file mode 100644 index 00000000..590eebbc --- /dev/null +++ b/event.d/rc4 @@ -0,0 +1,20 @@ +# rc4 - runlevel 4 compatibility +# +# This task runs the old sysv-rc runlevel 4 (user defined) scripts. It +# is usually started by the telinit compatibility wrapper. + +start on runlevel 4 + +stop on runlevel + +console output +script + set $(runlevel --set 4 || true) + if [ "$1" != "unknown" ]; then + PREVLEVEL=$1 + RUNLEVEL=$2 + export PREVLEVEL RUNLEVEL + fi + + exec /etc/rc.d/rc 4 +end script diff --git a/event.d/rc5 b/event.d/rc5 new file mode 100644 index 00000000..69ca88a7 --- /dev/null +++ b/event.d/rc5 @@ -0,0 +1,20 @@ +# rc5 - runlevel 5 compatibility +# +# This task runs the old sysv-rc runlevel 5 (user defined) scripts. It +# is usually started by the telinit compatibility wrapper. + +start on runlevel 5 + +stop on runlevel + +console output +script + set $(runlevel --set 5 || true) + if [ "$1" != "unknown" ]; then + PREVLEVEL=$1 + RUNLEVEL=$2 + export PREVLEVEL RUNLEVEL + fi + + exec /etc/rc.d/rc 5 +end script diff --git a/event.d/rc6 b/event.d/rc6 new file mode 100644 index 00000000..c40f708d --- /dev/null +++ b/event.d/rc6 @@ -0,0 +1,23 @@ +# rc6 - runlevel 6 compatibility +# +# This task runs the old sysv-rc runlevel 6 ("reboot") scripts. + +start on runlevel 6 + +stop on runlevel + +console output +script + set $(runlevel || true) + if [ "$2" != "0" ] && [ "$2" != "6" ]; then + set $(runlevel --set 6 || true) + fi + + if [ "$1" != "unknown" ]; then + PREVLEVEL=$1 + RUNLEVEL=$2 + export PREVLEVEL RUNLEVEL + fi + + exec /etc/rc.d/rc 6 +end script diff --git a/event.d/rcS b/event.d/rcS new file mode 100644 index 00000000..7717e3bd --- /dev/null +++ b/event.d/rcS @@ -0,0 +1,25 @@ +# rcS - runlevel compatibility +# +# This task runs the old sysv-rc startup scripts. + +start on startup + +stop on runlevel + +# Note: there can be no previous runlevel here, if we have one it's bad +# information (we enter rc1 not rcS for maintenance). Run /etc/rc.d/rc +# without information so that it defaults to previous=N runlevel=S. +console output +script + runlevel --set S >/dev/null || true + + #set $(runlevel --set S || true) + #if [ "$1" != "unknown" ]; then + # PREVLEVEL=$1 + # RUNLEVEL=$2 + # export PREVLEVEL RUNLEVEL + #fi + + exec /etc/rc.d/rc.sysinit + exec /etc/rc.d/rc S +end script diff --git a/event.d/rcS-sulogin b/event.d/rcS-sulogin new file mode 100644 index 00000000..ba5eea2e --- /dev/null +++ b/event.d/rcS-sulogin @@ -0,0 +1,25 @@ +# rcS-sulogin - "single-user" runlevel compatibility +# +# This task runs the sulogin binary during "single-user" mode. + +start on runlevel S + +stop on runlevel + +console owner + +script + runlevel --set S >/dev/null || true + /bin/bash + + if [ -r /etc/inittab ]; then + RL="$(sed -n -e "/^id:[0-9]*:initdefault:/{s/^id://;s/:.*//;p}" /etc/inittab || true)" + if [ -n "$RL" ]; then + telinit $RL + else + telinit 2 + fi + else + telinit 2 + fi +end script diff --git a/event.d/sulogin b/event.d/sulogin new file mode 100644 index 00000000..931fb062 --- /dev/null +++ b/event.d/sulogin @@ -0,0 +1,18 @@ +# sulogin - rescue mode +# +# This task ensures that should the system fail to have any active jobs +# that the system administrator can rescue it; by giving them a shell. + +#start on stalled + +exec /sbin/sulogin +console owner + +pre-start script + echo + echo "The system has reached a state where there are no jobs running." + echo "A shell will be spawned so that you may start such jobs that are" + echo "necessary." + echo + echo "Type 'exit' when finished." +end script diff --git a/event.d/tty1 b/event.d/tty1 new file mode 100644 index 00000000..bbeb0d9f --- /dev/null +++ b/event.d/tty1 @@ -0,0 +1,16 @@ +# tty1 - getty +# +# This service maintains a getty on tty1 from the point the system is +# started until it is shut down again. + +start on stopped rc2 +start on stopped rc3 +start on stopped rc4 +start on stopped rc5 + +stop on runlevel 0 +stop on runlevel 1 +stop on runlevel 6 + +respawn +exec /sbin/mingetty tty1 diff --git a/event.d/tty2 b/event.d/tty2 new file mode 100644 index 00000000..bf496f89 --- /dev/null +++ b/event.d/tty2 @@ -0,0 +1,16 @@ +# tty2 - getty +# +# This service maintains a getty on tty2 from the point the system is +# started until it is shut down again. + +start on stopped rc2 +start on stopped rc3 +start on stopped rc4 +start on stopped rc5 + +stop on runlevel 0 +stop on runlevel 1 +stop on runlevel 6 + +respawn +exec /sbin/mingetty tty2 diff --git a/event.d/tty3 b/event.d/tty3 new file mode 100644 index 00000000..4801aa8d --- /dev/null +++ b/event.d/tty3 @@ -0,0 +1,16 @@ +# tty3 - getty +# +# This service maintains a getty on tty3 from the point the system is +# started until it is shut down again. + +start on stopped rc2 +start on stopped rc3 +start on stopped rc4 +start on stopped rc5 + +stop on runlevel 0 +stop on runlevel 1 +stop on runlevel 6 + +respawn +exec /sbin/mingetty tty3 diff --git a/event.d/tty4 b/event.d/tty4 new file mode 100644 index 00000000..0a6a08d8 --- /dev/null +++ b/event.d/tty4 @@ -0,0 +1,16 @@ +# tty4 - getty +# +# This service maintains a getty on tty4 from the point the system is +# started until it is shut down again. + +start on stopped rc2 +start on stopped rc3 +start on stopped rc4 +start on stopped rc5 + +stop on runlevel 0 +stop on runlevel 1 +stop on runlevel 6 + +respawn +exec /sbin/mingetty tty4 diff --git a/event.d/tty5 b/event.d/tty5 new file mode 100644 index 00000000..269fa658 --- /dev/null +++ b/event.d/tty5 @@ -0,0 +1,16 @@ +# tty5 - getty +# +# This service maintains a getty on tty5 from the point the system is +# started until it is shut down again. + +start on stopped rc2 +start on stopped rc3 +start on stopped rc4 +start on stopped rc5 + +stop on runlevel 0 +stop on runlevel 1 +stop on runlevel 6 + +respawn +exec /sbin/mingetty tty5 diff --git a/event.d/tty6 b/event.d/tty6 new file mode 100644 index 00000000..aaeb6936 --- /dev/null +++ b/event.d/tty6 @@ -0,0 +1,16 @@ +# tty6 - getty +# +# This service maintains a getty on tty6 from the point the system is +# started until it is shut down again. + +start on stopped rc2 +start on stopped rc3 +start on stopped rc4 +start on stopped rc5 + +stop on runlevel 0 +stop on runlevel 1 +stop on runlevel 6 + +respawn +exec /sbin/mingetty tty6 -- cgit From 1de0b38f2b65479c6a5a4bf67b67d995cd7c7a89 Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Fri, 25 Apr 2008 14:13:35 -0400 Subject: Import from event-compat-sysv-0.3.9-11.fc9 - Make ttys start after prefdm in runlevel 5 - Merge rc-default into rcS - Remove reliance on /etc/inittab --- event.d/rc-default | 22 ---------------------- event.d/rcS | 20 ++++++++++++-------- event.d/tty1 | 2 +- event.d/tty2 | 2 +- event.d/tty3 | 2 +- event.d/tty4 | 2 +- event.d/tty5 | 2 +- event.d/tty6 | 2 +- 8 files changed, 18 insertions(+), 36 deletions(-) delete mode 100644 event.d/rc-default (limited to 'event.d') diff --git a/event.d/rc-default b/event.d/rc-default deleted file mode 100644 index 9160062b..00000000 --- a/event.d/rc-default +++ /dev/null @@ -1,22 +0,0 @@ -# rc - runlevel compatibility -# -# This task guesses what the "default runlevel" should be and starts the -# appropriate script. - -start on stopped rcS - -script - runlevel --reboot || true - - RL="2" - if [ -r /etc/inittab ]; then - RL="$(sed -n -e "/^id:[0-9]*:initdefault:/{s/^id://;s/:.*//;p}" /etc/inittab || true)" - fi - for t in $(cat /proc/cmdline); do - case $t in - -s|single|S) RL="S" ;; - [1-9]) RL="$t" ;; - esac - done - telinit $RL -end script diff --git a/event.d/rcS b/event.d/rcS index 7717e3bd..b361de1c 100644 --- a/event.d/rcS +++ b/event.d/rcS @@ -13,13 +13,17 @@ console output script runlevel --set S >/dev/null || true - #set $(runlevel --set S || true) - #if [ "$1" != "unknown" ]; then - # PREVLEVEL=$1 - # RUNLEVEL=$2 - # export PREVLEVEL RUNLEVEL - #fi + /etc/rc.d/rc.sysinit + runlevel --reboot || true + . /etc/sysconfig/init - exec /etc/rc.d/rc.sysinit - exec /etc/rc.d/rc S + RL="3" + [ "$GRAPHICAL" = "yes" ] && RL="5" + for t in $(cat /proc/cmdline); do + case $t in + -s|single|S) RL="S" ;; + [1-9]) RL="$t" ;; + esac + done + telinit $RL end script diff --git a/event.d/tty1 b/event.d/tty1 index bbeb0d9f..f0002ae3 100644 --- a/event.d/tty1 +++ b/event.d/tty1 @@ -6,7 +6,7 @@ start on stopped rc2 start on stopped rc3 start on stopped rc4 -start on stopped rc5 +start on started prefdm stop on runlevel 0 stop on runlevel 1 diff --git a/event.d/tty2 b/event.d/tty2 index bf496f89..ec5f94cd 100644 --- a/event.d/tty2 +++ b/event.d/tty2 @@ -6,7 +6,7 @@ start on stopped rc2 start on stopped rc3 start on stopped rc4 -start on stopped rc5 +start on started prefdm stop on runlevel 0 stop on runlevel 1 diff --git a/event.d/tty3 b/event.d/tty3 index 4801aa8d..ed95fdcf 100644 --- a/event.d/tty3 +++ b/event.d/tty3 @@ -6,7 +6,7 @@ start on stopped rc2 start on stopped rc3 start on stopped rc4 -start on stopped rc5 +start on started prefdm stop on runlevel 0 stop on runlevel 1 diff --git a/event.d/tty4 b/event.d/tty4 index 0a6a08d8..76b6d717 100644 --- a/event.d/tty4 +++ b/event.d/tty4 @@ -6,7 +6,7 @@ start on stopped rc2 start on stopped rc3 start on stopped rc4 -start on stopped rc5 +start on started prefdm stop on runlevel 0 stop on runlevel 1 diff --git a/event.d/tty5 b/event.d/tty5 index 269fa658..9e9d8137 100644 --- a/event.d/tty5 +++ b/event.d/tty5 @@ -6,7 +6,7 @@ start on stopped rc2 start on stopped rc3 start on stopped rc4 -start on stopped rc5 +start on started prefdm stop on runlevel 0 stop on runlevel 1 diff --git a/event.d/tty6 b/event.d/tty6 index aaeb6936..7eb42c01 100644 --- a/event.d/tty6 +++ b/event.d/tty6 @@ -6,7 +6,7 @@ start on stopped rc2 start on stopped rc3 start on stopped rc4 -start on stopped rc5 +start on started prefdm stop on runlevel 0 stop on runlevel 1 -- cgit From 5ec2aa3a9080117be7705c6dc35f94f6099f3f10 Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Fri, 25 Apr 2008 14:15:03 -0400 Subject: Import from event-compat-sysv-0.3.9-12.fc9 - Go back to using /etc/inittab for default runlevel (reverts #432384) - Add respawn (and a limit) to prefdm (#440061) --- event.d/prefdm | 6 +++--- event.d/rcS | 11 +++++------ event.d/rcS-sulogin | 13 +++---------- 3 files changed, 11 insertions(+), 19 deletions(-) (limited to 'event.d') diff --git a/event.d/prefdm b/event.d/prefdm index e53d18d8..7098bd76 100644 --- a/event.d/prefdm +++ b/event.d/prefdm @@ -7,6 +7,6 @@ start on stopped rc5 stop on runlevel [!5] console output -script - exec /etc/X11/prefdm -nodaemon -end script +respawn +respawn limit 10 120 +exec /etc/X11/prefdm -nodaemon diff --git a/event.d/rcS b/event.d/rcS index b361de1c..f040b1e6 100644 --- a/event.d/rcS +++ b/event.d/rcS @@ -15,15 +15,14 @@ script /etc/rc.d/rc.sysinit runlevel --reboot || true - . /etc/sysconfig/init - RL="3" - [ "$GRAPHICAL" = "yes" ] && RL="5" + runlevel=$(/bin/awk -F ':' '/^id:/ { print $2 }' /etc/inittab) + [ -z "$runlevel" ] && runlevel="3" for t in $(cat /proc/cmdline); do case $t in - -s|single|S) RL="S" ;; - [1-9]) RL="$t" ;; + -s|single|S) runlevel="S" ;; + [1-9]) runlevel="$t" ;; esac done - telinit $RL + telinit $runlevel end script diff --git a/event.d/rcS-sulogin b/event.d/rcS-sulogin index ba5eea2e..5125fc41 100644 --- a/event.d/rcS-sulogin +++ b/event.d/rcS-sulogin @@ -12,14 +12,7 @@ script runlevel --set S >/dev/null || true /bin/bash - if [ -r /etc/inittab ]; then - RL="$(sed -n -e "/^id:[0-9]*:initdefault:/{s/^id://;s/:.*//;p}" /etc/inittab || true)" - if [ -n "$RL" ]; then - telinit $RL - else - telinit 2 - fi - else - telinit 2 - fi + runlevel=$(/bin/awk -F ':' '/^id:/ { print $2 }' /etc/inittab) + [ -z "$runlevel" ] && runlevel="3" + telinit $runlevel end script -- cgit From 6d68871c340d80954e1d474c9addc5cb4f30e968 Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Fri, 25 Apr 2008 14:15:52 -0400 Subject: Import from event-compat-sysv-0.3.9-13.fc9 - Use the proper field in /etc/inittab --- event.d/rcS | 2 +- event.d/rcS-sulogin | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'event.d') diff --git a/event.d/rcS b/event.d/rcS index f040b1e6..728ae396 100644 --- a/event.d/rcS +++ b/event.d/rcS @@ -16,7 +16,7 @@ script /etc/rc.d/rc.sysinit runlevel --reboot || true - runlevel=$(/bin/awk -F ':' '/^id:/ { print $2 }' /etc/inittab) + runlevel=$(/bin/awk -F ':' '$3 == "initdefault" { print $2 }' /etc/inittab) [ -z "$runlevel" ] && runlevel="3" for t in $(cat /proc/cmdline); do case $t in diff --git a/event.d/rcS-sulogin b/event.d/rcS-sulogin index 5125fc41..1a2f49e2 100644 --- a/event.d/rcS-sulogin +++ b/event.d/rcS-sulogin @@ -12,7 +12,7 @@ script runlevel --set S >/dev/null || true /bin/bash - runlevel=$(/bin/awk -F ':' '/^id:/ { print $2 }' /etc/inittab) + runlevel=$(/bin/awk -F ':' '$3 == "initdefault" { print $2 }' /etc/inittab) [ -z "$runlevel" ] && runlevel="3" telinit $runlevel end script -- cgit 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 From 89388cd39edcc42ae355ff854f14649822591263 Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Fri, 25 Apr 2008 16:55:04 -0400 Subject: Set TEXTDOMAIN, etc. and mark the message for translation --- event.d/rc1 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'event.d') diff --git a/event.d/rc1 b/event.d/rc1 index 5153c8c2..5ad47bbe 100644 --- a/event.d/rc1 +++ b/event.d/rc1 @@ -22,6 +22,8 @@ script end script post-stop script clear - echo "Telling INIT to go to single user mode." + TEXTDOMAIN=initscripts + . /etc/profile.d/lang.sh + echo $"Telling INIT to go to single user mode." exec telinit S end script -- cgit 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(-) (limited to 'event.d') 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 From dc21589a6f657737edea88e39e4c819f9101ba2e Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Fri, 2 May 2008 13:54:21 -0400 Subject: remove debugging cruft --- event.d/rcS-sulogin | 3 --- 1 file changed, 3 deletions(-) (limited to 'event.d') diff --git a/event.d/rcS-sulogin b/event.d/rcS-sulogin index c7866b93..59a0b4d3 100644 --- a/event.d/rcS-sulogin +++ b/event.d/rcS-sulogin @@ -13,12 +13,9 @@ script exec /bin/bash end script post-stop script - 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