From ca58877ed06b259ce37a6240746c733d47b0a179 Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Thu, 20 Sep 2007 22:45:16 +0000 Subject: [PATCH] Harden startup and shutdown --- etc.BSD/rc | 14 +++++++------- etc.BSD/rc.shutdown | 7 +++++-- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/etc.BSD/rc b/etc.BSD/rc index f9f76b87..1bf06e32 100644 --- a/etc.BSD/rc +++ b/etc.BSD/rc @@ -7,7 +7,11 @@ # If $TERM is not set then assume default of cons25 # This gives us a nice colour boot :) -[ -z "$TERM" ] && export TERM="cons25" +[ -z "$TERM" -o "$TERM" = "dumb" ] && export TERM="cons25" + +# Handle interupts +trap : SIGINT +trap "echo 'Boot interrupted'; exit 1" SIGQUIT # BSD's init works somewhat differently to sysvinit. # This block should 'translate' from the way init calls it to the way it would @@ -16,10 +20,6 @@ RUNLEVEL="1" /sbin/rc sysinit || exit 1 RUNLEVEL="1" /sbin/rc boot || exit 1 PREVLEVEL="1" /sbin/rc default -# If we return non zero after starting rc then 2 things may happen -# 1) We get the message "init: can't get /dev/console for controlling terminal" -# every few seconds -# 2) We get no error and console freezes. -# This is probably a bug somewhere in rc, but until that is fixed we have to -# return 0. +# We don't actually care if rc default worked or not, we should exit 0 +# to allow logins exit 0 diff --git a/etc.BSD/rc.shutdown b/etc.BSD/rc.shutdown index 81dc20fe..eb2344b2 100644 --- a/etc.BSD/rc.shutdown +++ b/etc.BSD/rc.shutdown @@ -5,13 +5,16 @@ # Ensure we are called by init [ "$PPID" = "1" ] || exit 0 +# Handle interupts +trap : SIGINT SIGQUIT + # Try and use stuff in /lib over anywhere else so we can shutdown # local mounts correctly. export LD_LIBRARY_PATH="/lib${LD_LIBRARY_PATH:+:}${LDLIBRARY_PATH}" # If $TERM is not set then assume default of cons25 -# This gives us a nice colour shutdown :) -[ -z "$TERM" ] && export TERM="cons25" +# This gives us a nice colour boot :) +[ -z "$TERM" -o "$TERM" = "dumb" ] && export TERM="cons25" # BSD's init works somewhat differently to sysvinit. # This block should 'translate' from the way init calls it to the way it would