agetty プログラムの動作

agetty は tty ポートを開き、ログイン名を求めます。

/etc/inittab
# These are the standard console login getties in multiuser mode:
c1:1235:respawn:/sbin/agetty 38400 tty1 linux
c2:1235:respawn:/sbin/agetty 38400 tty2 linux
c3:1235:respawn:/sbin/agetty 38400 tty3 linux
c4:1235:respawn:/sbin/agetty 38400 tty4 linux
c5:1235:respawn:/sbin/agetty 38400 tty5 linux
c6:12345:respawn:/sbin/agetty 38400 tty6 linux

/sbin/agetty 38400 tty1 linux を例として説明します。第一パラメータの 38400 は通信速度を指定します。単位は BPS です。次に、第二パラメータの tty1 は /dev/tty1 のことを示します。/dev/tty1 は第一番目の仮想コンソールです。そして、第三パラメータの linux は環境変数 TERM に代入されます。

起動された agetty は、まず /etc/issue の内容を表示します。

/etc/issue
Welcome to ¥s ¥r (¥l)

¥s、¥r、¥l はそれぞれ、OS の名前、OS のリリース番号、tty ライン名に置き換えられます。

/etc/issue の内容を表示した後、ログインプロンプトを表示し、ログイン名の入力を待ちます。ログインプロンプトはホスト名に login: が結合されたものです。

Welcome to Linux 2.4.18 (tty1)

darkstar login:

最後に、agetty は入力されたログイン名をパラメータとして /bin/login を実行します。但し、agetty は login を実行する際に fork-and-exec ではなく exec のみを用います。よって、プロセス ID は変わりません。

参考文献


前へ 起動プロセス入門 次へ