UPDATE-RC.D(8)

名前
update-rc.d - System-V スタイルの init スクリプト用のリンクをインストール、削除する

書式
update-rc.d [-n] [-f] name remove

update-rc.d [-n] [-f] name defaults [NN | NN-start NN-stop]

update-rc.d [-n] [-f] name start|stop NN runlevel runlevel ... . start|stop NN runlevel runlevel ... . ...

説明
update-rc.d は、 スクリプト /etc/init.d/name へのリンクである /etc/rcrunlevel.d/NNname を自動的に作成する。 /etc/rcrunlevel.d/NNname は System V スタイルの init スクリプト用のリンクであり、 ランレベルを変更する際に init によって実行され、一般にデーモンのようなシステムサービスの起動、 停止に使用される。 runlevel には init がサポートするランレベル数 0123456789S のうちのひとつを指定する。 NN は 2 桁の数字であり、 init がスクリプトを実行する順序を決めるために使用する。 このマニュアルは update-rc.d の使用法とその動作についてのみ言及する。 System V スタイルの init スクリプトの配置についての議論には、 init(8) と dpkg programmers' manual を参照すること。

INIT スクリプト用のリンクをインストールする
defaults, start, stop オプションのいずれかを使って実行した場合、 update-rc.d は /etc/rcrunlevel.d/[SK]NNname をスクリプト /etc/init.d/name にリンクする。 ファイル /etc/rcrunlevel.d/[SK]??name がすでに存在する場合には、 update-rc.d は何もしない。これは、システム管理者がひとつでもリンクを残していた 場合に、その設定を上書きされることがなく、別の場所に移動させること ができるようにするためである。 defaults が使用された場合、 update-rc.d はランレベル 2345 にサービスの起動用リンクを、ランレベル 016 にサービスの停止用リンクを作成する。デフォルトでは、リンクはすべて のシーケンスコード 20 を持つが、引数 NN をひとつ、又はふたつ与えることで変更することができる。引数がひとつ の場合、起動用リンクと停止用リンクの両方のシーケンスコードを変更す る。一方、引数がふたつ与えられた場合、ひとつめが起動用リンクのシー ケンスコードを、ふたつめが停止用リンクのシーケンスコードを変更す る。 defaults を使用する代わりに、引数セットを与えることで サービスを起動、停止するランレベルを明示的に指定することができる。 引数セットはそれぞれ引数 start または stop で始まり、これにより起動用リンクまたは停止用リンクのどちらを作成す るか指定する。次に、引数セットのリンクすべてに対するシーケンスコー ド番号 NN を指定し、更にひとつ以上のランレベル数をそれぞれひとつの引数として 与える。引数セットは引数 . (ピリオド)により終了する。 defaults を使用せず明示的に指定した場合、通常 start セットと stop セットがひとつずつ存在する。 ランレベルごとに異なるシーケンスコードが必要な場合は、 start セットや stop セットを複数指定する。 update-rc.d がリンクを作成する前に、 スクリプト /etc/init.d/name が存在していなくてはならない。

リンク削除用のスクリプト
remove オプションを引数に与えると、 /etc/rcrunlevel.d ディレクトリにあるスクリプト /etc/init.d/name へのリンクをすべて削除する。 スクリプトはあらかじめ削除されていなくてはならない。 update-rc.d はこれをチェックする。通常、 update-rc.d はパッケージの postrm スクリプトから呼び出される。 これが実行されるのは、postrm スクリプトの第1引数として purge が与えられた場合であり、これはユーザがパッケージの設定を削除 することを要求していることを表す。 /etc/rcrunlevel.d ディレクトリにあるがスクリプト /etc/init.d/name にシンボリックリンクされていないファイルは削除されずに残される。

オプション

-n  実際の動作を表示するだけで、何もしない。

-f  /etc/init.d/name が存在しいても、強制的にシンボリックリンクを削除する。

使用例
defaults を使用したリンクの作成
   update-rc.d foobar defaults
引数セットを明示した同等のコマンド
   update-rc.d foobar start 20 2 3 4 5 . stop 20 0 1 6 .

バグ
システム管理者のために少なくとも defaults でどのランレベルを start または stop にするかを指定できる方法が必要である。 また、可能ならば defaults 以外のオプションでも管理者の指定を優先する方法が必要。

ファイル

/etc/init.d/
    init スクリプトが実際に置いてあるディレクトリ

/etc/rc?.d/
    update-rc.d が取り扱うリンクを含んだディレクトリ。 init により使用される。

/etc/init.d/skeleton
    init.d スクリプトを書くために使用する雛型

関連項目
dpkg programmers manual,
/etc/init.d/skeleton,
init(8).

翻訳者
鍋谷 栄展 <nabetani@kern.phys.sci.osaka-u.ac.jp>