この特集のトップページへ
この回のトップページへ

デーモン管理設定 (serviceconf

 GUI設定ツール「サービスの設定」は,Linuxの起動時にどのようなサービス(デーモン)を起動させるかを設定するものだ。設定画面は,Fig.3に示すように全サービスが表示されており,各サービスにチェックを付けることでLinux起動時にどのサービスを実行するのかが指定できる。

 また,この画面でサービスをクリックして選択したのち,[開始][停止][再起動]のボタンそれぞれを押すことで,サービスの状態を変更することも可能だ。

Fig.3■サービスの設定
Fig.3

 上記で設定するサービスは,ランレベルごとに分類される。ランレベルとはTable 1に示すLinuxの動作モードを示す動作状態だ。「サービスの設定」では[ランレベルの編集]メニューから「3」「4」「5」のいずれかを選択し,このランレベルごとの設定を変更できる。このランレベルの詳細については,連載第1回「起動スクリプトを知って基礎を理解しよう」を参考にしてほしい。

Table 1■ランレベルが示すそれぞれの動作モード

ランレベル 意    味
0 システム停止
1 シングルユーザーモード
2 マルチユーザーモード。ただしNFSは利用しない
3 マルチユーザーモード(テキストモードでログオン)
4 未使用
5 マルチユーザーモード(X Windowでログオン)
6 リブート

サービスの管理ツールが行っていること

 「サービスの管理」ツールが行っている処理を想像するのは容易だ。まず最初に一覧として表示されるサービス名だが,これは単に/rc.d/init.d/ディレクトリ下に存在するスクリプトの一覧(ファイル名)を判別し,表示しているにすぎない。試しに,/rc.d/init.d/ディレクトリ下に適当なファイルを作成してみるのもよい。リスト上に現れるはずだ。

 そして,各サービスの[開始][停止][再起動],それぞれのボタンが押された場合には,該当する起動スクリプトそれぞれの「start」「stop」「restart」パラメータが付加されて実行をしている仕組みだ。

 また,各サービスに対して[起動時に開始]にチェックを付けた際,「サービスの管理」ツールは,該当するスクリプト(例えば,/etc/rc.d/init.d/smb)のシンボリックリンクを該当する「/etc/rc.d/rcランレベル」ディレクトリ下に作成する(例:「ln -s /etc/rc.d/init.d/smb /etc/rc.3/K20smb」など)。これにより,起動時に自動的にそのサービスが動作するわけだ。

 以上で説明してきたように,「サービスの管理」ツールは,「/etc/rcランレベル」ディレクトリ内のスクリプトを単純に操作するもののため,GUIではなく手作業で同じ設定を行ったとしても(前述のように,lnコマンドでの操作など),環境を壊してしまうといった不具合は起こらない。いってみれば,「サービスの管理」が/rc.d/init.d/ディレクトリ下のスクリプト内構文までを編集するツールではないためだ。

 基本的に,サービスの動作状態を決めるためには,この設定ツールで十分であるが,「サービスの設定」ツールでは,(1)サービスの起動順序を決められない,(2)あらかじめ起動スクリプトが/etc/init.dディレクトリに存在しなければならない,という条件が伴う。

 もしこれらの制限が問題となるならば,「/etc/rcランレベル」ディレクトリに手動でスクリプトを置いたり、起動時に実行されるスクリプトとして用意されている/etc/rc.localファイルに処理内容を記述する方法にしなければならない。そのようなケースは少ないが,Red Hat LinuxのRPMパッケージではなく,ソースコードからインストールした汎用的なUnix用のプログラムの場合には,/etc/rc.localファイルへの記述が必要なことは意外と多い。

PREV 2/5 NEXT