サービスの設定
提供: 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配下のスクリプトを起動しているだけである。