vine-users ML アーカイブ



[vine-users:070184] Re: スタート時、textモードへ の変更とDOSで言うautoexe.bat

  • From: Junichi Mori <july.mori@xxxxxxxxxxx>
  • Subject: [vine-users:070184] Re: スタート時、textモードへ の変更とDOSで言うautoexe.bat
  • Date: Mon, 31 Jan 2005 10:35:21 +0900
> /sbin/initが起動(/etc/inittabの設定読み込み。)
> inittabに従いrc3.d以下のファイルを実行(ランレベル3の場合)

細かいことですが、現在の Vine では run level に従った実行というのは、
/etc/inittab の

  l3:3:wait:/etc/rc.d/rc 3

といった行で指定されています。その前後を見れば分かりますが、実は、どの
run level でも /etc/rc.d/rc を実行していて、その引数に run level の数値が
指定されています。そして、/etc/rc.d/rc が指定された引数に従って、
/etc/rc.d/rc?.d/ 以下のプログラムを起動していくことになります。

> 	rc3.d以下のファイルは/etc/init.d/以下のファイルへのシンボリック
>  リンクになっているので実際は/etc/init.d/以下にあるスクリプトが
>  実行される。
> 	実行順序はSに続く数字の小さい順に実行される。
>   で、rc.localへのシンボリックリンクはS99local(当方の環境では)
>   になっていたので一番最後に実行される。

/etc/rc.d/rc?.d/ 以下のファイル名は「S」で始まるものと、「K」で始まるもの
がありますが、「S」で始まるものは、引数に「start」、「K」で始まるものは、
「stop」を付けて起動します。

例えば、「S85httpd」であれば、

  /etc/rc.d/rc3.d/S85httpd start

ということになります。シャットダウン時(run level = 0)やリブート時
(run level = 6)に動いている daemon 類が終了するのは、/etc/rc.d/rc0.d
や /etc/rc.d/rc6.d が軒並み「K」で始まるファイル名になっているからです。
数字の小さい順に実行されるのはその通りです。

> /etc/sysinitが実行されて起動終了。
> 
> と言うことは何か起動時に動かしたいプログラムがあれば、
> /etc/init.d/以下にスクリプトを作成し、rc3.d以下にそのスクリプトへの
> シンボリックリンクを作成すればOKという事になる。

もちろん、シンボリックリンクで作らなければいけない、ということは無いので
すが、一般的にはそうします。

> で、シンボリックリンクを作成するには
> /sbin/chkconfig --add hoge (hogeは/etc/init.d以下に作成したスクリプト名)
> としてから、実際にどのランレベルで有効にするかを
> /sbin/chkconfig --hoge
> で、状態を見てから
> /sbin/chkconfig --level 3 hoge on
> と有効にしたいランレベルを設定する

chkconfig にはもう一つ条件があって、/etc/rc.d/init.d に置くスクリプトファ
イルのコメント部分に

  # chkconfig: - 85 15
  # description: Apache is a World Wide Web server.  It is used to serve \
  #              HTML files and CGI.

という記述がありますが、この部分が無いと、chkconfig では正しく処理出来ま
せん。詳しくは man chkconfig の「RUNLEVEL ファイル」というところを参照し
てください。

この記述は、chkconfig にとって必要、というだけなので、手動で
/etc/rc.d/rc3.d といったディレクトリに、コピー/リンクしても構いません。

...と、私が知っているのはこんなところかな(^^;。
お役に立てれば幸いです。

-- 
森 淳一
july.mori@xxxxxxxxxxx