CentOS 6でinitスクリプトを作成¶
はじめに¶
CentOS 6では、システム起動時(ブートローダーがカーネルをメモリにロードし、カーネルが起動した後)に立ち上がるinitコマンド(通常プロセスID 1)がランレベルに応じて/etc/rc0.d~rc6.dディレクトリにあるスクリプトを順次実行していきます。ランレベルが3であれば、/etc/rc3.dディレクトリ下のスクリプトが実行されます。
ランレベル¶
RHEL6/CentOS6では、次のようにランレベルが定義・使用されています。
Red Hat Enterprise Linux 6 インストールガイド 付録F
| ランレベル | 意味 | 
|---|---|
| 0 | 停止 | 
| 1 | シングルユーザーテキストモード | 
| 2 | 未使用(ユーザー定義で使用可能) | 
| 3 | フルマルチユーザーテキストモード | 
| 4 | 未使用(ユーザー定義で使用可能) | 
| 5 | フルマルチユーザーグラフィカルモード) | 
| 6 | 再起動 | 
システムがどのランレベルで起動するかは、/etc/inittab で決まります。
id:5:initdefault:
chkconfig¶
起動時に、ランレベルに応じて実行するinitスクリプトを管理するのがchkconfigコマンドです。
initスクリプトの作成¶
initスクリプトの骨格¶
#!/bin/sh                          <-- シェルスクリプトとしての定義
# chkconfig: 345 99 01             <-- サービスを動かすランレベル(345)、startの数字(S99)、stopの数字(K01)
# description: 説明を記述          <-- このinitスクリプトの説明を記述
# config: /path/to/config          <-- このinitスクリプトが参照する設定ファイルがあれば記述
. /etc/init.d/functions            <-- initスクリプトユーティリティ設定を取り込み
case "$1" in                       <-- initスクリプトに渡されるオプションで制御を振り分け
  start)
    ;;
  stop)
    ;;
  status)
    ;;
  restart)
    ;;
  reload)
    ;;
  *)
    ;;
	
/etc/init.d/functionsの利用¶
予め用意されているinitスクリプト用のユーティリティ集です。
success、failure、killproc、daemon、__readlink、__fgrepほかいろいろ