RedHat系Linuxの起動ファイル

YAMAMORI Takenori ●yamamori

■コラム■ シェル関数action()を直接使ってみよう

RedHat系Linuxは,起動時にコンソールに[ OK ]という緑色の メッセージを次々に表示しながらOSが立ち上がります. これを表示しているのは,/etc/rc.d/init.d/functionsの中で定義されている シェル関数のaction()(またはqaction(),daemon())です.

このaction()などのシェル関数はrcスクリプト中で頻繁に使用されており,また, 関数の呼び出し時には右側に「()」を付けずに単にactionなどと記述さているため, 通常コマンドと区別がつかず,rcスクリプトを読むのに苦労するかも知れません.

そこで,ためしにaction()などのシェル関数を手動で使ってみる方法を紹介します. 下図のように,bash上でfunctionsファイルを読み込み, 感じを出すために「Bringing up interface」というメッセージを付けて 実行するのです.なお,functionsを読み込むと,このシェル自身のPATHなどの設定が 変更されてしまうため注意して下さい.ここでの実行例は単なる遊びですが, まるで何らかの初期設定が行なわれているような雰囲気になります.

*図 action()などのシェル関数を,試しに手動で使っているところ
------------(action.gif)--------------------
+================ kterm ==================+
|bash$ . /etc/rc.d/init.d/functions       | ← functionsを読み込む
|bash$ action "Bring..." ls               | ← ためしにlsコマンドでactionを実行
|Bringing up ....   [  OK  ]              | ← 本物のように[ OK ]が表示された
|bash$ action "Bring..." ls /nofile       | ← /nofileをlsして失敗させてみる
|Bringing up .. ls: /nofile: No such ..   | ← エラーメッセージが邪魔だが…
|[FAILED]                                 | ← [FAILED]は表示された
|bash$ qaction "Bring..." ls /nofile      | ← この場合はqactionの方を使う
|Bringing up ....   [FAILED]              | ← 本物のように[FAILED]の表示
|bash$ echo -n "Bring.."; daemon ls; echo | ← daemonを使う場合はこのようにする
|Bringing up ....   [  OK  ]              | ← こちらも本物そっくり
|                                         |
|                                         |
==========================================+
--------------------------------------------

action.gif


To『PC UNIXの起動と起動ファイルの解読』[index]


このページは、技術評論社 「SoftwareDesign 2001年9月号、『起動ファイルから解読するPC UNIX』の原稿を元に、Web 用に再構成したものです。
To 謎の処理系 SunOS 4.1.4 [Home]
yamamori