サービスの起動と停止 (update-rc.d)


Red Hat 系では chkconfig コマンドを使用して RunLevel 毎のサービスの起動や
停止の制御 (/etc/init.d/ 以下のスクリプトに対するリンクの作成) を行いますが
Debian ではこのような操作を行う際には update-rc.d コマンドを使用します。





(1) リンクの作成

リンクの作成には update-rc.d コマンドの引き数に /etc/init.d/ 以下の
スクリプト名 (ここでは lpd とします) と defaults を指定します。

# update-rc.d lpd defaults

 Adding system startup for /etc/init.d/lpd ...
   /etc/rc0.d/K20lpd -> ../init.d/lpd
   /etc/rc1.d/K20lpd -> ../init.d/lpd
   /etc/rc6.d/K20lpd -> ../init.d/lpd
   /etc/rc2.d/S20lpd -> ../init.d/lpd
   /etc/rc3.d/S20lpd -> ../init.d/lpd
   /etc/rc4.d/S20lpd -> ../init.d/lpd
   /etc/rc5.d/S20lpd -> ../init.d/lpd


defaults を指定した場合はシーケンスコードは 20 が使用され
RunLevel 2345 に起動用のリンク (S20...)、RunLevel 016 に停止用の
リンク (K20...) が作成されます。

起動用と停止用のリンクのシーケンスコードに任意のものにする場合は
defaults の後に続けて指定します。
以下は、起動用のリンクのシーケンスコードを 91、停止用を 29 とする例です。

# update-rc.d lpd defaults 91 29

 Adding system startup for /etc/init.d/lpd ...
   /etc/rc0.d/K29lpd -> ../init.d/lpd
   /etc/rc1.d/K29lpd -> ../init.d/lpd
   /etc/rc6.d/K29lpd -> ../init.d/lpd
   /etc/rc2.d/S91lpd -> ../init.d/lpd
   /etc/rc3.d/S91lpd -> ../init.d/lpd
   /etc/rc4.d/S91lpd -> ../init.d/lpd
   /etc/rc5.d/S91lpd -> ../init.d/lpd


また、RunLevel 毎にシーケンスコードを指定することも可能です。
以下は
 - RunLevel 234 にシーケンスコード 91 で起動用
 - RunLevel 5 にシーケンスコード 99 で起動用
 - RunLevel 01 にシーケンスコード 28 で停止用
 - RunLevel 6 にシーケンスコード 25 で停止用
のリンクを作成する例です。
(コマンドラインの最後にもピリオドが必要ですので注意して下さい)

# update-rc.d lpd start 91 2 3 4 . start 99 5 . stop 28 0 1 . stop 25 6 .

 Adding system startup for /etc/init.d/lpd ...
   /etc/rc0.d/K28lpd -> ../init.d/lpd
   /etc/rc1.d/K28lpd -> ../init.d/lpd
   /etc/rc6.d/K25lpd -> ../init.d/lpd
   /etc/rc2.d/S91lpd -> ../init.d/lpd
   /etc/rc3.d/S91lpd -> ../init.d/lpd
   /etc/rc4.d/S91lpd -> ../init.d/lpd
   /etc/rc5.d/S99lpd -> ../init.d/lpd






(2) リンクの削除

リンクの削除には update-rc.d コマンドの引き数にスクリプト名と remove を
指定します。

# update-rc.d -f lpd remove

update-rc.d: /etc/init.d/lpd exists during rc.d purge (continuing)
 Removing any system startup links for /etc/init.d/lpd ...
   /etc/rc0.d/K20lpd
   /etc/rc1.d/K20lpd
   /etc/rc6.d/K20lpd
   /etc/rc2.d/S20lpd
   /etc/rc3.d/S20lpd
   /etc/rc4.d/S20lpd
   /etc/rc5.d/S20lpd


-f のオプションは /etc/init.d/ 以下にスクリプトが存在していても、リンクの
削除を行えるようにするためのものです。
アプリケーションの実体 (パッケージ) を削除し /etc/init.d/ 以下にスクリプトが
ない場合は -f オプションは不要です。





戻ります


$Date: 2005/08/04 16:08:03 $