初期化スクリプト


 以前Slackwareを使っていたのだが、Debianに乗り換えて一番戸惑ったのがこの初期化スクリプトでした。だって全然違うんだもん。(笑)
 rc.localとか探したってどこにもないし、その代わりにrcN.dとかいうディレクトリが大量にあったりする。

 まず、rcN.dディレクトリだけど、Nの部分には1〜6の数字またはSが入り、ランレベルNに入ったときやシステム起動時に実行するスクリプトを納めたディレクトリとなっている。これらのディレクトリ内のスクリプトは実際には全てシンボリックリンクであり、その実体は/etc/init.d以下に納められている。
 シンボリックリンクの名前は、
Snnスクリプト名
Knnスクリプト名
という名前になっており(nnは二桁の番号)、先頭がKで始まるのはサービス停止スクリプト、Sで始まるのはサービス開始スクリプトである。
 ランレベルがNに変化したとき、まずサービス停止スクリプトがnnの小さい順に(同じ番号の時はスクリプト名のアルファベット順に)"stop"という引数で実行され、その後、サービス開始スクリプトがサービス停止スクリプトと同じルールの順番で"start"という引数で実行される。また、ランレベル0または6のときは、サービス開始スクリプトも"stop"という引数で実行されるようになっている。


 また、初期化スクリプトは引数を与えてやることでデーモン等の動作を制御するのにも使えるので、一般的な引数を以下に書いておく。

 start  サービス開始
 stop  サービス停止
 restart  サービスをいったん終了後再スタート
 reload  サービスを中断せずに設定ファイルだけ再読み込み
 force-reload  可能ならばreload、不可能だったらrestart


 因に、自分で/etc/init.dから/etc/rcN.dにリンクを張る場合、手動で張るのは面倒なので、リンクを自動生成してくれるコマンド"update-rc.d"がある。詳細はman update-rc.dででも。(^^;

Debian雑記帳に戻る