diff options
author | Roy Marples <roy@marples.name> | 2007-09-20 22:45:16 +0000 |
---|---|---|
committer | Roy Marples <roy@marples.name> | 2007-09-20 22:45:16 +0000 |
commit | ca58877ed06b259ce37a6240746c733d47b0a179 (patch) | |
tree | 11873b159360a75ea7b2a4b22a81c2dba35336b6 | |
parent | 963229dce839c4b144c1819f60cfeef788b35160 (diff) |
Harden startup and shutdown
-rw-r--r-- | etc.BSD/rc | 14 | ||||
-rw-r--r-- | etc.BSD/rc.shutdown | 7 |
2 files changed, 12 insertions, 9 deletions
@@ -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 |