1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
#!/bin/sh
### BEGIN INIT INFO
# Provides: leds-@LVL@
# Required-Start: $local_fs
# Required-Stop:
# Default-Start: S 1 2 3 4 5
# Default-Stop:
# Short-Description: Start led blinking
# Description: This script is executed at the start of
# each run-level transition. It should be
# the first 'start' script.
### END INIT INFO
#
# 'start' indicates the start of a runlevel change
# 'stop' at the end of the runlevel change - we are in the new
# runlevel.
#
# state outputs 'system', 'user' etc according the the nature of
# the runlevel it is passed (the *new* runlevel is used).
state(){
case "$1" in
S|N) echo system;;
0|6) echo shutdown;;
1) echo singleuser;;
2|3|4|5) echo user;;
*) echo "led change: $runlevel: runlevel unknown" >&2
echo system;;
esac
}
# trumpet "beeps" an announcement on systems with such support.
l=120 # Long beep time
s=40 # Try to keep a 3:1 ratio
trumpet(){
case "$1" in
k) leds beep -l $l; leds beep -l $s; leds beep -l $l;;
n) leds beep -l $l; leds beep -l $s;;
*) leds beep;;
esac
}
case "$1" in
stop) leds "$(state "$runlevel")"
if [ "$(state "$runlevel")" = "user" ]; then
trumpet "k"
fi
;;
start) leds boot "$(state "$runlevel")"
;;
restart|force-reload|*)
echo "led change: $1: command ignored" >&2
;;
esac
|