FreeBSD連載(11):系統登錄與退出
王波
系統登錄與退出
系統執行完rc啟動腳本之后,FreeBSD將讀取/etc/ttys文件,按照配置啟動多個虛擬控制台,在
控制台上啟動登錄進程login,以接受用戶登錄。使用者可以使用Alt-F1、Alt-F2和Alt-F3等功能鍵
在不同的控制台之間進行切換。缺省條件下有4個虛擬控制台(其中第四個沒有提供登錄服務),最多到有12個虛擬控制台
(受標准PC的12個功能鍵的限制)。
系統在控制台上印出login提示,此時可以使用root用戶和安裝時設置的root口令登錄系統。
FreeBSD/i386 wb.online.ha.cn (ttyv0)
login: root
Password:
用戶通過口令認証之后,系統將/etc/motd中的內容顯示到屏幕上,這個文件中通常放置系統管理員想通知
每個用戶的通告內容,從而通知正在登錄的用戶有關信息。然后login程序啟動用戶的登錄shell,由登錄shell
執行/etc/profile為用戶設置好使用環境。
當登錄到系統之后,用戶就能輸入各種命令,以使用FreeBSD系統處理各項任務。
當工作完成之后,可以使用logout命令退出當前會話。使用exit,或使用鍵Ctrl-D(^D),都能
結束當前會話,退出登錄過程。
# logout
由于FreeBSD是多任務系統,同時有多個進程在運行,并且使用了磁盤緩沖技朮以提供更佳的系統效率,因此
使用直接關閉電源的方法關閉計算機會對系統造成破壞。在非正常關機之后的再次啟動過程中,系統將偵測到上次沒有正確關
閉系統,并自動運行硬盤檢查程序fsck(由rc文件啟動),來檢查并修復硬盤的錯誤。
關機需要在以root身份登錄進入系統之后,使用shutdown命令來進行關閉系統,需要使用-h參數,表
示halt,停機操作:
# shutdown -h now
Feb 4 12:18:26 wb shutdown: halt by root:
Feb 4 12:18:29 wb syslogd: exiting on signal 15
syncing disks... done
The operating system has halted.
Please press any key to reboot.
一些情況下,如更新了系統內核時,要重新啟動系統。則應使用-r參數,表示reboot,重新啟動系統:
# shutdown -r now
如果沒有使用-h或-r參數,shutdown命令將試圖進入單用戶狀態,這與在啟動時在boot loader
中下輸入boot -s命令進入單用戶模式略有差別,由于在多用戶狀態時系統中有多個進程運行,當進入單用戶狀態
時可能有些進程不能正常退出,同時文件系統的狀態也有差別。
而參數now為一個時間參數, “now” 表示立即執行shutdown操作。由于FreeBSD是多用戶
系統,在執行shutdown時會有其他用戶通過網絡使用這個系統,正常情況下應該延遲一端時間再執行shutdown
操作,給那些正在連接的用戶一定的時間用于保存數據并退出系統,就需要使用其他時間參數來啟動shutdown。例
如:下面命令將使系統在2分鐘后停機,同時也將向正在登錄的用戶發送廣播信息,將后面參數中的信息通知當前登錄的各個
用戶:
# shutdown -h +2 “Hi guys! please logout”
時間參數除了這種增量形式,也可以使用不用”+”號的絕對形式來表示,那么時間參數就為hhmm的格式,如
0120表示1:20等。
在系統還沒有停機或重起的時間間隔內,shutdown將產生/etc/nologin文件,而系統中的
login程序將檢查是否存在這個文件,當發現存在這個文件時就阻止非root用戶登錄系統。正常情況下shutdown
執行真正的停機或重起操作時會刪除這個文件,如果這個文件因為某些原因而沒有被刪除,那么系統login進程將不允許
普通用戶登錄。
用于立即啟動和停機的命令還有reboot和halt,相當于使用-r或-h參數的shutdown指令。因
為這是立即執行的命令,沒有提供警告登錄用戶的功能。由于命令相對簡單,因此單人使用的系統中可以很方便的使用。
如果使用者沒有使用root登錄進系統,但是可以接觸到控制台,那么仍然可以正常關機而不破壞系統。使用者可
以使用Ctrl-Alt-Del熱鍵重起計算機,就在計算機進入BIOS自檢時,再關閉計算機的電源。這種方法在系統
屏蔽了Ctrl-Alt-Del熱鍵的啟動能力之后就不再有效。
在重新定制內核時使用 “options SC_DISABLE_REBOOT” 可以屏蔽系統控制台
的熱啟動功能。
未完,待續。。。
|