サービスの設定

提供: Astarisk Works Wiki

目次

はじめに

linux(SystemV系)は、起動停止スクリプトは/etc/rc.d/init.d配下に置くことになっています。この起動停止スクリプトで操作されるソフトウェアがLinuxでいうサービスになります。 そして、各ランレベルに対して自動的に起動するのかどうかを設定することが出来ますが、そのためのスクリプトは、以下のディレクトリに置く決まりになっています。

/etc/rc.d/rc0.d  <竏停・runlevel0(halt)
/etc/rc.d/rc1.d  <竏停・runlevel1(Single user mode)
/etc/rc.d/rc2.d  <竏停・runlevel2(RedHat系はMultiuser, without NFS)
/etc/rc.d/rc3.d  <竏停・runlevel3(RedHat系はFull multiuser mode)
/etc/rc.d/rc4.d  <竏停・runlevel4(RedHat系は未使用)
/etc/rc.d/rc5.d  <竏停・runlevel5(RedHat系はX11)
/etc/rc.d/rc6.d  <竏停・runlevel6(reboot)

ただし、各ランレベルの起動スクリプトは実際には/etc/rc.d/init.d配下のスクリプトのシンボリックリンクになっています。 その際のネーミングは

Snnsssss<竏停・起動時(先頭にS次に番号スクリプト名)
Knnsssss<竏停・停止時(先頭にK次に番号スクリプト名)

となっていて、頭文字のSまたはKの後の数字は起動/停止の順番となります。

ここではサービスのランレベルごとの設定を行うのに便利なchkocnfigコマンドについて説明します。

chkconfig

chkconfigコマンドは、RedHat系ではおなじみのコマンドです。

コマンドchkconfigの使い方

操作書式
登 録chkconfig --add name
解 除chkconfig --del name
変 更chkconfig --level levels name <on|off|reset>
表 示chkconfig --list [name]
--level levels
変更対象RUNレベル(0縲・)を指定します。(複数指定可)
動作は、以降指定されるon|off|resetになります。
name
サービス名、/etc/rc.d/init.d/配下のスクリプトファイル名
例:apache、proftpdなど
on|off|reset
on:levelsに対する起動を指定します。
off:levelsに対する停止を指定します。
reset:evelsに対するリセットを指定します。
--add name
サービスを登録します。
RUNレベルに対する動作は、スクリプトの# chkconfigに従います。
--del name
サービスを解除します。
--list [name]
サービスの状態表示。nameが指定されない場合、全サービスを表示します。

自作の自動起動スクリプトをchkconfig対応にする

rpmでインストールしたサービスは、すべてchkconfig対応になっている。しかし、自分でソースからインストールしたものはそうではない。 ここでは、自分でソースからインストールしたサービスの自動実行用スクリプト作成方法について説明する。

自動実行スクリプトをchkconfigコマンド対応にする場合、自動実行スクリプトの先頭を次のようにします。その上でディレクトリ/etc/rc.d/init.d/におく必要があります。 下記例はapacheの例です。 スクリプト位置は、/etc/rc.d/init.d/apacheです。

#!/bin/sh
#
# Startup script for the Apache Web Server
#
# chkconfig: 345 85 15
# description: Apache is a World Wide Web server.
# processname: httpd
#
   :
   :

おまけ

serviceコマンドは/etc/rc.d/init.d配下のスクリプトを起動しているだけである。

個人用ツール