-#!/bin/bash
+#!/usr/bin/setsid /bin/bash
# Copyright (C) 2009 Andy Spencer
# See ../COPYING for terms
# GLobals
COMMAND=boot
TESTING=false
+RELOAD=false
if [ $$ == 1 ]; then
DAEMON=true
else
DAEMON=false
fi
-PATH=/lib/mkinit/bin:/bin:/sbin:/usr/bin:/usr/sbin
-export PATH
+export PLAN9=/opt/plan9
+export PATH=/lib/mkinit/bin:/bin:/sbin:/usr/bin:/usr/sbin
# Functions
function usage {
echo ' -h,--help Print usage information'
echo ' -t,--test Fake all commands'
echo ' -d,--daemon For spawning stdin listener'
+ echo ' -r,--reload Reload mkinit'
echo ''
echo 'Command:'
echo ' boot Execute boot-up procedures'
# Handle arguments
function doopts {
- TMP=`getopt -n "$0" -o htd -l help,test,daemon -- "$@"`
+ TMP=`getopt -n "$0" -o htdr -l help,test,daemon,reload -- "$@"`
[ $? != 0 ] &&
usage
eval set -- "$TMP"
-h|--help ) usage ;;
-t|--test ) TESTING=true ;;
-d|--daemon ) DAEMON=true ;;
+ -r|--reload ) RELOAD=true ;;
esac
shift
done
echo ' TESTING:' $TESTING 1>&2
echo ' DAEMON:' $DAEMON 1>&2
echo ' COMMAND:' $COMMAND 1>&2
+ echo ' RELOAD:' $RELAOD 1>&2
fi
}
if [ "$*" ]; then
runamk "$@"-stop ||
runamk "$@"-zap
+ sleep 0.5
runamk "$@"-start
fi
;;
doopts "$@"
# Run whatever was requested
-process "${COMMAND[@]}"
+if ! $RELOAD; then
+ process "${COMMAND[@]}"
+fi
# Fork console listener
while $DAEMON; do
+ $TESTING || exec 0</dev/tty1 1>/dev/tty1 2>&1
while read -ep "mkinit> " line; do
process $line
history -s $line
done
$TESTING && exit
- exec 0</dev/console 1>/dev/console 2>&1
- echo "Respawning on /dev/console.."
+ echo "Respawning on /dev/tty1"
sleep 1
done