init.dにあるスクリプトでランレベルごとに処理を変える。

case $runlevel in
0)
#ランレベル0の処理
;;
1)
#ランレベル1の処理
;;
#中略
6)
#ランレベル6の処理
;;
esac

$runlevelっていうのはinit.dにあるrcで定義されるのでいけるかとおもったらできた。下でも可じゃなくて、再起動とかはうまくいくけど起動時はだめっぽい。

case $1 in
0)
#ランレベル0の処理
;;
1)
#ランレベル1の処理
;;
#中略
6)
#ランレベル6の処理
;;
esac

処理をまとめる場合は、

case $runlevel in
0 | 6)
#ランレベル0と6の処理
#シャットダウンと再起動
;;
1)
#ランレベル1の処理
#シングルユーザー(debian)
;;
2 | 3 | 4 | 5)
#ランレベル2、3、4、5の処理
#マルチユーザー(debian)
;;
esac