UNIX/Linuxの部屋 initコマンドの使い方

TOP UNIX/Linuxの部屋 UNIX/Linuxコマンド一覧 用語集 新版 由来/読み方辞書 環境変数マニュアル Cシェル変数 システム設定ファイル システムコール・ライブラリ ネットワークプログラミングの基礎知識 クラウドサービス徹底比較・徹底解説




コマンド init ログイン処理の初期化 このエントリーをはてなブックマークに追加

UNIX で一番最初に実行されるプロセスが init である。全てのプロセスは init から fork/exec されて作成される。

init は最初に sh スクリプト /etc/rc を実行する。/etc/rc の中では
  • /etc/fstab を参照しながら /、/usr、/var などのファイルシステムをマウントする
  • /etc/rc.network や /etc/rc.serial を実行する
  • ホストの設定ファイル /etc/rc.conf を読み込み、その内容に従って sendmail などの<li>各種デーモン・/usr/local/etc/rc.d/*.sh を実行する。
が順に行われる。

init は最後に /etc/ttys を参照しつつ /usr/libexec/getty を実行する。FreeBSD でのデフォルトでは、getty が 3つ起動される。getty は
Login:
と表示し、ユーザ名が入力されるのを待つ。ユーザ名が実行されると、getty は login コマンドを実行する。例えば hoge というユーザ名が入力されると
/usr/bin/login -p hoge
を実行する。

login コマンドは
Password:
と表示し、パスワード入力を待つ。パスワードが入力されたら、得られたユーザ名とパスワードを照合し、/etc/master.passwd (実際はデータベース化された /etc/spwd.db) と照らし合わせて正しいパスワードかどうかを調べる。正しければそのユーザのログインシェルを実行するわけである。

ユーザがログアウトすると login コマンドが終了し、init に処理が戻る。すると、init は再度 getty を実行し、再びユーザがログインしてくるのを待つ。

/etc/ttys を変更することで、xdm や getty などの細かな設定を行うことができる。