next up previous contents
Next: IPアドレスと名前解決 Up: 環境設定 Previous: 環境設定

起動とrcファイル

Unixではシステムの起動は、ブートシーケンスがカーネルを読み込み、 カーネルが initプログラムを起動する。起動された init プログラムが各種設定ファイルを起動し、システムが立ち上がるように なっている。設定ファイルは、SystemV系とBSD系で少し違い、一般に SystemV系では /etc/rc?.d/ ディレクトリ下の Sxx(xx は数字)を順に実行することで立ち上がる(Sxxは主にシェル スクリプトで、実際には /etc/init.d/へのリンクが多い)。 一方、BSD系では伝統的に/etc/rc/etc/rc.localなどのスクリプトファイルを起動するようになって いるが、FreeBSD等ではこれらの rc ファイルから更に /etc/rc.i386,/etc/rc.pccard,/etc/rc.network などのスクリプトを起動するように拡張されている。こうした起動スクリプト の分離は、アプリケーションを自動的に組み込むために考え出された 非常に簡単な方法であり、FreeBSDでは/usr/local/etc/rc.d//usr/X11R6/etc/rc.d ディレクトリ下のスクリプトを最後に起動するようになっている。

FreeBSDではこうした起動ファイルの設定を更に簡便に行うために、起動 スクリプトの環境変数を別のファイルにまとめている。つまり、起動スクリプト は最初にこの環境変数を定義したファイルを読み込むようになっている 訳である。更に、こうした環境変数のデフォルト値を反映するようにする ために、最初に/etc/defaults/rc.conf を読み込み、その後に /etc/rc.confを読み込むようになっている。このことによって、ユーザー が独自に加えた変更は /etc/rc.confに書き込むことによって、 環境変数が上書きされ、システムに反映される訳で、必要のない(デフォルト のままで良い)設定は何もしなくとも /etc/defaults/rc.confの 設定が生きるようになっているのである。従って、ユーザーは /etc/defaults/rc.confの中身を修正してはならず、必ず /etc/rc.confに対して行わなければならない。しかし、実際に設定 を行うに当たってはデフォルト値を知る必要があるので、 /etc/defaults/rc.confを参照はしなければならない。

もっとも単純な /etc/rc.confの例を下に掲げる。


# This file now contains just the overrides from /etc/defaults/rc.conf
# please make all changes to this file.

# -- sysinstall generated deltas -- #
ifconfig_fxp0="inet 192.168.0.10 netmask 255.255.255.0"
hostname="test.wakhok.ac.jp"
keymap="jp.106"

最初の環境変数は、後に出てくる ifconfigコマンドに渡すオプションで、 ネットワークインターフェースボードのIPアドレスとネットマスクを設定している。 ちなみに、fxp0 はインターフェースボードの種類で、この場合はIntel Ether ExpressPro/100である。自分が利用しているインターフェースボードの 名前が知りたい場合には、dmesgコマンドでシステムメッセージを見る と良い。


    > dmesg | more
    Copyright (c) 1992-1999 FreeBSD Inc.
    Copyright (c) 1982, 1986, 1989, 1991, 1993
        The Regents of the University of California. All rights reserved.
    FreeBSD 3.5-RELEASE #0: Thu Jun 22 04:05:16 GMT 2000
        root@monster.osd.bsdi.com:/usr/src/sys/compile/GENERIC
    Timecounter "i8254"  frequency 1193182 Hz
    CPU: Pentium III/Pentium III Xeon/Celeron (551.25-MHz 686-class CPU)
      Origin = "GenuineIntel"  Id = 0x673  Stepping = 3
      Features=0x383f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,
                MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,<b25>>
    real memory  = 134217728 (131072K bytes)
      ......
      ......
    fxp0: <Intel EtherExpress Pro 10/100B Ethernet> rev 0x05 int a irq 9 on pci0.3.0

2番めの環境変数は自ホストの名前の定義であるが、これは後述の /etc/hostsにおける名前と混同してはいけない。通常は、 自ホスト名と自分のデフォルトインターフェース名とは一致させておくようにする (これについては後でもう一度述べる)。

3番目の環境変数はキーボードの種別の定義である。もし、これをインストール時 に定義しておらず、日本語106キーを利用している場合、US101キーボードとして しか認識せず記号などの入力が難しくなるので、設定が必要である(設定後は リブートが必要)。



Noriyo Kanayama