プロジェクト

全般

プロフィール

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ほかいろいろ


約8年前に更新