有一些應用會希望電腦開機後自動登入並直接啟動指定的程式,例如:POS系統、機台設備的數控電腦等等。

針對這方面的需求,可以用 mingetty 這個套件來處理自動登入的需求。在 RedHat 與 Fedora Core 6 預設就是使用這個套件。以下就在 FC6 環境下操作:

1. 首先要讓 Linux 啟動後進入命令列模式(command-mode or console-mode)要做以下調整:

編輯 /etc/inittab 檔案,尋找一行設定內容為

1
id:?:initdefault:

其中的 ? 可能是 3 或 5 確定將 ? 修改成

1
id:3:initdefault:

存檔後直接 reboot 確認主控台是否開機後會跑到文字介面。 當然也可以跳過重開機部份直接進行下一步修改。

2. 讓 mingetty 自動登入

編輯 /etc/inittab 檔案,找到下列一段設定:

1
2
3
4
5
6
7
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

請修改成

1
2
3
4
5
6
7
8
# Run gettys in standard runlevels
#1:2345:respawn:/sbin/mingetty tty1
1:2345:respawn:/sbin/mingetty --noclear --autologin user1 tty1
2:2345:respawn:/sbin/mingetty tty2
#3:2345:respawn:/sbin/mingetty tty3
#4:2345:respawn:/sbin/mingetty tty4
#5:2345:respawn:/sbin/mingetty tty5
#6:2345:respawn:/sbin/mingetty tty6

然後重開機就可以看到,主控台開機完成後就會直接用 user1 帳號登入在 tty1 了,並且不會詢問密碼。