Ubuntu で chkconfig の代わりに update-rc.d を使う
2019-09-10
azblob://2022/11/11/eyecatch/2019-09-10-ubuntu-chkconfig-update-rc-d-000.jpg

現在、OS起動時に自動起動させたいデーモンの設定を CentOS などのRedhat 系では chkconfig, Debian では update-rc.d を insserv に置き換えて設定しますが、Ubuntu の場合は update-rc.d で設定できます。

Ubuntu 12.10 から chkconfig が使えなくなったので、代わりに使う update-rc.d についてまとめました。

chkconfig と update-rc.d の簡易対応表

chkconfigupdate-rc.d
$ chkconfig <script> onor$ chkconfig --add <script>$ update-rc.d <script> defaults
$ chkconfig <script> offor$ chkconfig --del <script>$ update-rc.d <script> remove

update-rc.d の書式

update-rc.d [-n][-f<script> defaults [NN | NN-start NN-stop]update-rc.d [-n][-f<script> remove update-rc.d [-n][-f<script> start|stop NN runlevel runlevel ... .start|stop NN runlevel runlevel

defaults を指定すると、<script> をランレベル2345にサービスの起動用リンクを、ランレベル016にサービスの停止用リンクを作成します。 remove を指定すると、<script> のリンクを全てのランレベルから削除します。

NN にはシーケンスコード番号を2桁の数字で指定します。シーケンスコード番号は、init がスクリプトを実行する順序を決めるために利用されます。依存関係のあるスクリプトを実行/停止する場合に指定します。 (デフォルト値は20、大きいほど後で実行される) 但し、ubuntu 18.04 ではサポートされていない模様です。 下記の manpage では NN についての記述がそもそもありません。

$ update-rc.d <script> start 20 2 3 4 5 . stop 20 0 1 6 .
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults

各コマンドの manpage はこちら