3 # Copyright (C) 2009 Andy Spencer
4 # See ../COPYING for terms
9 PATH=/lib/mkinit/bin:/bin:/sbin:/usr/bin:/usr/sbin
15 usage: $0 [options] [command]
18 -h,--help Print usage information
19 -r,--relaod Prevent spawning listeners when reloading
20 -t,--test Fake all commands
23 boot Execute boot-up procedures
24 halt Execute shutdown procedures
25 reload Re-execute init process
26 mk <rule> Execute mk rule
27 start|stop|restart|zap|status <service>
28 Start,stop,restart,zap or query status of service
29 eval <cmd> Execute command in mkinit process
35 [ "$TEST" ] && export P=true
36 /usr/lib/plan9/bin/mk \
48 echo "mkinit -- booting"
53 echo "mkinit -- restarting $args"
58 start|stop|zap|status )
60 echo "mkinit -- ${cmd}ing $args"
67 echo "mkinit -- running mk cmd [$args]"
68 [ "$cmd" = runlevel ] &&
69 echo "mkinit -- entering runlevel $args"
74 echo "mkinit -- ${cmd}ing"
75 exec $0 -r ${TEST:+"-t"}
81 echo "mkinit -- unknown command [$cmd $args]"
87 TEMP=`getopt -n "$0" \
89 --longoptions help,reload,test \
94 [ "$TEST" ] && echo "\$1=$1"
97 -r|--reload ) RELOAD=true; shift ;;
98 -t|--test ) TEST=true; shift ;;
113 echo " reload=$RELOAD"
118 if [ ! "$RELOAD" ]; then
119 # Fork /dev/initctl listener
120 ( exec 0<&- 1<&- 2<&-
126 # Fork console listener
127 # Readline uses stdin,stderr
130 while read -e -p "mkinit> " line; do
135 exec 0</dev/console 2>/dev/console
136 echo "Respawning on /dev/console.." >&2
140 # Close stdin, stderr
144 # Kill listeners on exit
145 trap "pkill -HUP -P $$ initctld" EXIT