11 FreeBSD连载:系统登录与退出

系统登录与退出系统执行完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 -h2 “Hi guys! please logout”
时间参数除了这种增量形式 , 也可以使用不用” ”号的绝对形式来表示 , 那么时间参数就为hhmm的格式 , 如0120表示1:20等 。
在系统还没有停机或重起的时间间隔内 , shutdown将产生/etc/nologin文件 , 而系统中的login程序将检查是否存在这个文件 , 当发现存在这个文件时就阻止非root用户登录系统 。正常情况下shutdown执行真正的停机或重起操作时会删除这个文件 , 如果这个文件因为某些原因而没有被删除 , 那么系统login进程将不允许普通用户登录 。
用于立即启动和停机的命令还有reboot和halt , 相当于使用-r或-h参数的shutdown指令 。因为这是立即执行的命令 , 没有提供警告登录用户的功能 。由于命令相对简单 , 因此单人使用的系统中可以很方便的使用 。

推荐阅读