今回は、
Debian(Ubuntu)で サービスの起動、停止を管理するツール(CentOS,ScientificLinux の chkconfigのかわりになるもの)は、
どんなものがあるか調べてみましたので、ちょっとだけ解説してみます。
- 目次
- 履歴
2013年3月17日 初版
Debian(Ubuntu)で サービスの起動、停止を管理するツールを調べてみた(chkconfigのかわりになるもの)
Debian(Ubuntu)で サービスの起動、停止を管理するツール(chkconfigのかわりになるもの)は、いくつかあります。 それぞれについて、簡単に解説してみます。
insserv
insservは、
chkconfig と同じようにサービスのOn/Off および RunLevelの管理までできます。
ただ、インターフェイスは、chkconfig とは異なります。
update-rc.d と同じようなインターフェイスで、Debian 6 (Ubuntu 12)以降は、update-rc.d でなく insserv を使うことが推奨されています。
insservのは、スクリプトのコメントヘッダを読み取ることによってインストールされたシステムのinitスクリプト (`boot script’) 有効にします。 以下は、スクリプトのコメントヘッダの例です。非常にシンプルで かつ 強力なツールでもあります。この扱いには、非常に注意が必要です。 Debianパッケージ情報にも、以下のような記載があります。
そして、すべてのスクリプト間の依存関係を計算します。
### BEGIN INIT INFO # Provides: boot_facility_1 [ boot_facility_2 ...] # Required-Start: boot_facility_1 [ boot_facility_2 ...] # Required-Stop: boot_facility_1 [ boot_facility_2 ...] # X-UnitedLinux-Should-Start: boot_facility_1 [ boot_facility_2 ...] # X-UnitedLinux-Should-Stop: boot_facility_1 [ boot_facility_2 ...] # Default-Start: run_level_1 [ run_level_2 ...] # Default-Stop: run_level_1 [ run_level_2 ...] # Description: multiline_description ### END INIT INFO
注意してください、Required-Stop,X-UnitedLinux-Should-Stop そして、Default-Stop は、SuSE Linuxで無視されます。 なぜなら、SuSEの起動スクリプトの概念は、差動リンク方式(init.d(7)参照)を使用するためです。
既知の依存関係と run-level(s) を insservは、設定し、ランレベルディレクトリの対応するシンボリックリンクを保存します。(init.d(7)参照)
本パッケージの insserv プログラムは慎重に用いる必要があります。また sysv-rc パッケージとともに使用してください。本プログラムは間違った使い方をするとシ ステムがブートできなくなります。
使い方
[サービスの状態を出力する]
|
この例では、
ntpサービスは、ランレベル 2,3,4,5 で 起動するように設定されてます。
以下の出力例では、
ntpサービスは、ランレベル 2,3が起動で、4,5 は 停止するように設定されてます。
|
/etc/rc{ランレベル番号}.d/{S|K}xx{サービス名}
ランレベル番号は、以下のとおりです。
0 停止(シャットダウンに向かう状態)
1 シングルユーザモード
2 ローカルなマルチユーザ(リモートなし)(システムによっては定義されていない)
3 マルチユーザー
4 (定義されていない)
5 ランレベル 3 + Xディスプレイマネージャ起動
6 リブート
S シングルユーザモード
{S|K}は、以下のとおりです。
S : 頭文字がSの場合は、該当ランレベルで起動を意味します。
K : 頭文字がKの場合は、該当ランレベルで停止を意味します。
[サービスを起動(on/off)を設定する]
|
更新できないのかなぁ、ちょっと不明です。
update-rc.d
update-rc.dは、
chkconfig と同じようにサービスのOn/Off および RunLevelの管理までできます。
ただ、インターフェイスは、chkconfig とは異なります。
insserv と同じようなインターフェイスで、Debian 6 (Ubuntu 12)以前は、insserv でなく update-rc.d を使います。
update-rc.d は、 スクリプト /etc/init.d/name へのリンクである /etc/rc{runlevel}.d/{NN}name を自動的に作成します。 /etc/rc{runlevel}.d/{NN}name は System V スタイルの init スクリプト用のリンクであり、 ランレベルを変更する際に init によって実行され、一般にデーモンのようなシステムサービスの起動、 停止に使用されます。 runlevel には init がサポートするランレベル数 0123456789S のうちのひとつを指定します。 NN は 2 桁の数字であり、 init がスクリプトを実行する順序を決めるために使用する。非常にシンプルで かつ 強力なツールでもあります。この扱いには、非常に注意が必要です。
使い方
[サービスの状態を出力する]
|
この例では、
ntpサービスは、ランレベル 2,3,4,5 で 起動するように設定されてます。
以下の出力例では、
ntpサービスは、ランレベル 2,3が起動で、4,5 は 停止するように設定されてます。
|
/etc/rc{ランレベル番号}.d/{S|K}xx{サービス名}
ランレベル番号は、以下のとおりです。
0 停止(シャットダウンに向かう状態)
1 シングルユーザモード
2 ローカルなマルチユーザ(リモートなし)(システムによっては定義されていない)
3 マルチユーザー
4 (定義されていない)
5 ランレベル 3 + Xディスプレイマネージャ起動
6 リブート
S シングルユーザモード
{S|K}は、以下のとおりです。
S : 頭文字がSの場合は、該当ランレベルで起動を意味します。
K : 頭文字がKの場合は、該当ランレベルで停止を意味します。
[サービスを起動(on/off)を設定する]
|
sysv-rc-conf
sysv-rc-confは、
chkconfigのインターフェイスに合わせてあるので、非常に使い勝手は似ていて、
CentOS,ScientificLinux ユーザによっては、扱いやすいと思います。
ウェブ上で紹介されているのも、このsysv-rc-confが多いです。
インターフェイスには、2つの異なる意味を持っています。ここで、chkconfigの構文に合わせていることを明言しています。
一つは、サービスをオン/オフに切り替えるためのシンプルなものです。 もう一つは、シンボリックリンクの管理をよりよく調整するためのものです。
それは、ntsysv(8) あるいは rcconf(8) のようなプログラムの置き換えを意味します。
sysv-rc-conf は、シンボリックリンクの変更が既に必要なことがわかっている場合は、他にコマンドラインで使用することができます。
その構文は、chkconfigの(8)から拝借しています。
使い方
[サービスの状態を出力する]
|
[サービスを起動(on/off)を設定する]
|
[Text User Interface(TUI)を使って サービスを起動(on/off)を設定する]
|
blank キー: on/off 切替
n キー : 次ページ
p キー : 前ページ
q キー : 終了
そのため、サービスをaptなどで削除した場合でも、いかにも残っているような出力を行うことがあります。
以下のサービス削除時の注意点をまとめました。
サービスの削除は、aptでやる場合、以下のようにpurgeを使って完全に削除する場合は、きれいにスクリプトまで削除してくれます。
|
問題は、removeで削除した場合です。
|
この場合、設定ファイルも残りますが、スクリプト(上の例でいえば、 /etc/init.d/ntp に相当する)も残ります。
これが残ると、上記のツールのほとんどが サービスがあると勘違いします。
どうしても設定ファイルを残したいがために remove を使う場合は、シンボリックリンクの削除、スクリプトを手動で削除されることをおすすめします。
|
sysv-rc-conf のキャッシュファイル(/var/lib/sysv-rc-conf/services)は、 サービスが削除されても だれも再構築してくれないので、一旦、手動で削除することをおすすめします。
|
rcconf
rcconfは、
サービスのOn/Offの切り替えのみが行えるもので、chkconfigの代わりというより ntsysv に似ています。
rcconf は、システムの起動、再起動時に、サービスを起動するか否かを制御することができます。 それは、rcconf は、システム起動時に開始することができる全てのサービスをメニューに表示します。 そして、そのサービスの一覧に印をつけるか否かで サービスのオンとオフを個別に切り替えることができます。ここで、事実、rcconfは、このマニュアルのとおり、起動の有無のみを設定するこもであって、runlevel の制御はできないことです。
rcconfは、/etc/init.d からサービスのリストを作成します。そして、サービスがOn/Offのいずれであるかを判断するために /etc/rc?.d ディレクトリの中を検出します。 rcconfは、/etc/rc?.d/”S”NNname の存在によってオン状態と判断します。
(/etc/rc?.d/[SK]NNname の NN)数字が、20(デフォルト)でないなら、rcconf は、サービス名と数字を /var/lib/rcconf/services の中に、独自の設定情報として保存します。 これは、サービスの状態を保持するとともにリカバリすることができるようになります。
‘dpkg –purge’ or ‘aptitude purge’によって rcconfパッケージを削除するなら、/var/lib/rcconf/services も削除され、それはパッケージの状態をも失うことになります。
使い方
[サービスの状態を出力する]
|
[サービスを起動(on/off)を設定する]
|
|
[Text User Interface(TUI)を使って サービスを起動(on/off)を設定する]
|
blank キー: on/off 切替
PageDown キー : 次ページ
PageUp キー : 前ページ
Tab キー : フォーカス切替
そのため、サービスをaptなどで削除した場合でも、いかにも残っているような出力を行うことがあります。
以下のサービス削除時の注意点をまとめました。
サービスの削除は、aptでやる場合、以下のようにpurgeを使って完全に削除する場合は、きれいにスクリプトまで削除してくれます。
|
問題は、removeで削除した場合です。
|
この場合、設定ファイルも残りますが、スクリプト(上の例でいえば、 /etc/init.d/ntp に相当する)も残ります。
これが残ると、上記のツールのほとんどが サービスがあると勘違いします。
どうしても設定ファイルを残したいがために remove を使う場合は、シンボリックリンクの削除、スクリプトを手動で削除されることをおすすめします。
|
rcconf のキャッシュファイル(/var/lib/rcconf/services)は、 サービスが削除されても だれも再構築してくれないので、一旦、手動で削除することをおすすめします。
|
upstart
Debian 6,Debian 7 では、upstartも導入されていますが、networkingなどの基本サービスに限定されてます。
しかし、Ubuntu 10,Ubuntu 12 では、upstartによるサービスの制御を行うものが少なくありません。
(参照 : Ubuntu Server でsshd をシステム起動時に起動しないようにするには?)
もし、対象サービスがupstartの対象となっている場合は、upstart用のサービス設定ファイルを編集してサービスの起動、停止を制御します。
確認の仕方
サービスがupstart対象か否かは、/etc/init/サービス名.conf のファイルが存在するか否かで判断できます。
|
サービスを停止/ランレベルの変更を行う方法
サービスがupstart対象の場合、該サービスを停止するには、以下の方法があります。
(ランレベルの変更は、後者にて行うことができます。)
- /etc/init/サービス名.conf のファイル名を変更してしまう
# upstart用の設定ファイル名を変更します。 $ mv /etc/init/mysql.conf /etc/init/mysql.conf.back
- 以下のようにファイルの中身の start on …箇所をコメントアウトする
# upstart用の設定ファイルを編集します。 $ vi /etc/init/mysql.conf ... # 以下の start on 箇所をコメントアウトすると起動しなくなる。 # -- コメントアウトでなくランレベルの指定もできる。 # start on runlevel [2345] ...
個人的にもsysv-rc-conf が 使いやすいです。
どうしても、insserv , update-rc.d あたりは、パラメータを忘れてしまうんですよね。
いずれにせよ、色々とやり方はありますから、自分にあったものを選ばれることをおすすめします。
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない、検索ができないことがあります。
コメントを投稿 :