#!/bin/sh # # This script is executed at the start and end of each run-level # transition. It is the first 'stop' script and the last 'start' # script. # # 'stop' indicates the start of a runlevel change # 'start' 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 start) leds "$(state "$runlevel")" if [ "$(state "$runlevel")" == "user" ]; then trumpet "k" fi ;; stop) leds boot "$(state "$runlevel")" ;; *) echo "led change: $1: command ignored" >&2 ;; esac