サービスの起動・停止

自動的に起動・停止するサービスは、通常「/etc/rc.d/rc」という名前のスクリプトで起動します。図3は、Fedora Core 5のrcスクリプトの主な部分です(先頭の数値は行番号です)。

図3●/etc/rc.d/rcの内容の抜粋
図3●/etc/rc.d/rcの内容の抜粋
Fedora Core 5の場合。左の数字は行番号。
[画像のクリックで拡大表示]

27~29行目は、現在のラン・レベルを「runlevel」という変数として格納しています。49行目からのfor文によって、/etc/rc?.dディレクトリ(?は、現在のラン・レベル名が入る)の中にあるKで始まるファイル名のサービスが停止するようになっています。

66行目からはfor文によって、Sで始まるファイル名のサービスが起動します。/etc/rc?.dディレクトリ内にあるKもしくはSから始まる名前のファイルは、/etc/init.dディレクトリにあるスクリプトへのシンボリック・リンクになっています。

サービスの起動

HTTPサービスを起動する場合、/etc/init.dディレクトリにあるスクリプトを利用し、startパラメータ(引数)を付けて次のように実行します。

# /etc/init.d/httpd start

これらのスクリプトのパラメータは一般に、停止であれば「stop」、再起動であれば「restart」、状態の確認は「status」です。パラメータが分からない場合は、パラメータを省略して実行してみましょう。次のように、説明が表示される場合があります。

# /etc/init.d/httpd
使い方: httpd {start|stop……(後略)

なお、Fedora Coreなどでは、/etc/init.dディレクトリにあるスクリプトのほかに、/sbin/serviceスクリプトでもサービスの起動・停止ができます。

# service サービス名 start

ラン・レベルの設定

スクリプトを使ってサービスの起動や停止を行っても、システムを再起動すれば元に戻ってしまいます。各ラン・レベルで起動・停止するサービスは、前述した/etc/rc.d/rcスクリプトに指定されているように、/etc/rc?.dディレクトリにあるファイルで決まります。各ランEレベルで起動・停止になるサービス名は、次のコマンドで確認できます(例は「3」の場合)。

# ls /etc/rc3.d

表示されたスクリプト・ファイルの名前が、Kから始まるサービスが停止し、Sから始まるサービスが起動します。下記のようにファイル名を変更すれば、停止していたサービスが起動するようになります。

# mv /etc/rc3.d/K15httpd /etc/rc3.d/S85httpd

インストールされているサービスが、ラン・レベルごとに起動・停止のどちらかになるかは、chkconfigコマンドで確認できます。

# chkconfig –list

chkconfigコマンドでパラメータを付ければ、各ラン・レベルごとの設定変更も可能です(図4)。

図4●chkconfigコマンドの使用例
図4●chkconfigコマンドの使用例
[画像のクリックで拡大表示]

(1)最初の「# ls /etc/rc?.d/*httpd」で、各ラン・レベルごとのディレクトリから、HTTPサービスに関する設定を確認しています。すべてファイル名が「K」から始まるスクリプトになっていますので、サービスは停止されます。

(2)は、chkconfigコマンドを使ってHTTPサービスの設定を確認しているところです。オプションに、デーモン名である「httpd」を指定します。

(3)のように、chkconfigコマンドを使って、ラン・レベル名を指定せずに設定を指定すると、「2」「3」「4」「5」を対象に変更されます。

(4)で確認すると、「0」「1」「6」を除いて、サービスの起動を表す「S」から始まるファイル名になっていることが分かります。

レベルを指定する場合は、(5)のようにオプションで「–level」を指定し、その後にレベル名を付けます。

(6)すべての設定を初期設定(デフォルト)に戻す場合は、オプションに「reset」を指定します。

起動・停止の優先順位

HTTPサービスの起動スクリプトに対し、「chkconfig」を含む行を検索すると

# grep chkconfig /etc/init.d/httpd
# chkconfig: – 85 15

という結果を得られます。この行はデフォルトの設定を表し、「-」は停止、それ以外は起動を示します。2桁の数字は、スクリプトの起動・停止の優先順位を表し、この場合、HTTPサービスの起動は85番目、停止は15番目の優先順位で行うことです。

networkサービスの場合は、

# grep chkconfig /etc/init.d/network
# chkconfig: 2345 10 90

という結果になります。これは、ランEレベル「2」「3」「4」「5」のすべてで起動することを表し、優先順位は10番目であることが分かります。停止する場合は、90番目です。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中