この特集のトップページへ
この回のトップページへ

 スクリプトファイルの中を見てみよう。

リスト5■/etc/rc.d/init.d/sendmailファイル内
別ウィンドウで見る or list05.txt

 リスト5内に記述されている引数「$1」は,コマンドラインで実行する際の1つ目に当たる。この起動スクリプトでは,$1の内容を調べて挙動を決定するのだ。Sendmailの起動用のスクリプトでは,「start」,「stop」,「restart」,「status」の4種類の引数を取ることができるようになっており,例えば「start」だった場合には, リスト5の中で以下の部分が実行される。

リスト6■リスト5の中で実行される部分
別ウィンドウで見る or list06.txt

 リスト6はSendmailを起動するためのスクリプトだ。これらのスクリプトは,すべてのランレベルで共通に利用される。このため各ランレベルのスクリプトのディレクトリに格納するのではなく,/etc/rc.d/init.dディレクトリの中に本体を置き,ランレベルのスクリプト用ディレクトリに本体へのリンクファイルが存在する。

 ランレベルのスクリプトディレクトリからのリンクは,以下のルールに従って名前が付けられている。

1文字目 開始:S/停止:K
2〜3文字目 実行する順番(2桁の数字)
4文字以降 実行するサービス名

 例えば,/etc/rc.d/rc3.dディレクトリ内に「S80sendmail」と指定されている場合,「ランレベル3」で「Sendmail」を「80」番目に「開始」させるという設定になる。これらの「開始/停止」の判断や,実行する順番は/etc/rc.d/rcファイルのスクリプトが受け持っている。

 /etc/rc.d/rcスクリプトは,ランレベルのスクリプトディレクトリの中を検索し,まず「K」で始まるスクリプトを「stop」引数(オプション)と共に実行して各種のサービスを停止する。さらに「S」で始まるスクリプトを「start」引数と共に実行してサービスを開始する。ランレベル3の場合は,次のような手順になる。

順番 スクリプト 動作
1 K00linuxconf 停止
2 K20rstatd 停止
3 K20rwhod 停止
4 K55routed 停止
5 K95kudzu 停止
6 K96pcmcia 停止
7 S05apmd 開始
8 S10network 開始
9 S11portmap 開始
10 S15netfs 開始
11 S20random 開始
12 S30syslog 開始
13 S40atd 開始
順番 スクリプト 動作
14 S40crond 開始
15 S50inet 開始
16 S50snmpd 開始
17 S55sshd 開始
18 S60lpd 開始
19 S60rusersd 開始
20 S75keytable 開始
21 S80sendmail 開始
22 S85gpm 開始
23 S85sound 開始
24 S91skkserv 開始
25 S92canna 開始
26 S99local 開始

 これらの処理が終わると,initは次の手順に沿ってログインプロンプト表示まで移行する。次のように記述されている手順に従い,/sbin/mingettyを実行するのだ(ランレベル 2,3,4,5で実行)。

# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

 ランレベルが5の場合には,次の記述にしたがって/etc/X11/prefdmを実行する(これが X Window Systemを利用したGUIのログイン画面となる)。

# Run xdm in runlevel 5
# xdm is now a separate service
x:5:respawn:/etc/X11/prefdm -nodaemon

PREV 9/12 NEXT