精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● FreeBSD>>《FreeBSD使用大全》第二版>>3.1.3 关闭系统

主题:3.1.3 关闭系统
发信人: sungang(笨刚)
整理人: sungang(2003-09-16 11:25:33), 站内信件
3.1.3 关闭系统

与启动系统类似,关闭系统也属于管理员的操作任务,但是对于个人计算机用户,这也是必须掌握的第一步操作之一。

由于FreeBSD是多任务系统,同时有多个进程在运行,并且使用了磁盘缓冲技术以提供更佳的系统效率,因此使用直接关闭电源的方法关闭计算机会对系统造成破坏。当然,系统有能力自动修复,在非正常关机之后的再次启动过程中,系统将能够侦测到上次没有正确关闭系统,并自动运行硬盘检查程序fsck,来检查并修复硬盘的错误,但并不能保证100%能修复好系统,一旦发生严重错误就无法修复,因此必须正确关闭系统,而不能直接关闭电源。

关机需要在以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命令将试图进入单用户状态,单用户状态属于一种系统的管理状态,此时系统中只有必要的系统任务,而用来执行正常工作的很多任务将没有启动,这样系统操作就更安全。事实上,除了采用shutdown命令进入单用户状态之外,在启动过程中使用特殊指令也能进入单用户状态,并且由于系统刚刚启动,因此状态更为干净。我们将在后面章节中讨论单用户状态的有关部门操作。

而参数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” 可以屏蔽系统控制台的热启动功能。

[关闭][返回]