UNIX系统的关机操作远比DOS系统更为严谨和复杂。如今大量服务器与网络设备运行在UNIX环境下,若未按照规范流程执行关机,极易导致文件系统损坏,造成不可估量的数据损失。本文将详细解析UNIX系统中几种实用的关机方法,从强制停机到优雅关闭,各自适用于不同的运维场景。
1. 用haltsys命令关机
haltsys命令一旦执行,系统会立即停机。它的优势在于响应迅速、强制性强,适合仅你一人占用系统的情况。若系统中有其他用户正在工作,执行此命令会导致他们正在编辑的文档或运行的任务全部丢失。操作非常简单:使用超级用户登录后输入haltsys并回车,看到系统提示关机信息后即可断电。简而言之,haltsys干脆利落,但请务必避免在多用户环境下使用。
2. 用reboot命令关机
reboot与haltsys本质上是同一程序——两者互为链接。唯一的区别在于,reboot在正常停机后无需手动操作,系统会自动引导重启。这一特性非常适合系统管理员进行调试:修改配置后,执行reboot即可让系统自动重启,无需守候。通俗来说,haltsys是“停机后等待手动开机”,而reboot是“停机后立即自动重启”。
3. 用shutdown命令关机
shutdown是UNIX关机操作中的核心工具。它是一个用shell语言编写的程序,位于/etc目录下。当超级用户在前台执行shutdown时,系统会自动调用wall命令,向所有在线用户发送通知:系统将在指定时间内关机,请提前保存数据。到达预定时间后,shutdown会调用kill终止除主控台外的所有进程,最后通过haltsys完成正常停机。基本使用格式为:shutdown -g[hh:]mm -f"Mesg",其中[hh:]mm指定关机时间(例如-g10表示10分钟后关闭),"Mesg"为发送给用户的提示信息。在多用户网络环境中,强烈推荐使用shutdown——它不仅为用户预留了缓冲时间,也最大程度保障了数据完整性。
4. 用bye命令关机
bye实际上是shutdown的一个便捷别名。有些用户觉得shutdown参数过多不便记忆,于是用vi编写了一个脚本,内容仅为一行:shutdown -y -g0(参数可根据需要调整)。将该文件保存为bye后即可使用。需注意,新生成的bye文件默认权限为-rw-r--r--,无法直接执行,必须先通过# chmod u+x bye赋予执行权限。此后在命令行中输入bye就相当于执行了shutdown,简单而高效。
5. 创建关机用户bye
长期直接使用超级用户关机不仅不利于系统管理,也存在安全风险。更优的做法是单独创建一个专用于关机的用户。下面以sysadmsh命令为例,演示完整操作流程:
第一,创建用户。使用超级用户登录,输入sysadmsh,依次选择Account → User → Create,在Username中输入bye,其余选项使用默认值。
第二,设置权限。在Account → User → Examine中,输入bye后选择Privilege → Subsystem → Specify,输入shutdown,保存修改并退出。
第三,编辑配置文件。以bye用户注册到系统,编辑当前目录下的.profile文件,内容添加以下两行:
trap exit 2,3
/tcb/bin/asroot shutdown -y -g0
完成上述配置后,在Login:提示符下直接输入bye,系统便会自动执行关机操作,既安全又便捷。
五种方法各有侧重。日常系统维护,使用shutdown最为稳妥;调试机器时reboot更为高效;若仅自己使用,haltsys也基本够用。但无论如何,切勿为了图省事而直接按电源键,那才是真正引发麻烦的做法。
