FreeBSD連載(11):系統登錄與退出

1999年11月13日 04:20 王波

系統登錄與退出

  系統執行完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” 可以屏蔽系統控制台 的熱啟動功能。