本章介绍关闭系统的过程。
以下列出本章所介绍的信息:
有关系统运行级的概述信息,请参见第 18 章。
有关与运行级和引导文件相关的过程的信息,请参见关闭系统(任务图)。
任务 |
说明 |
参考 |
---|---|---|
确定登录到系统的用户。 |
使用 who 命令可确定登录到系统的用户。 | |
关闭服务器。 |
使用带有合适选项的 shutdown 命令关闭服务器。 | |
关闭独立系统。 |
使用 init 命令并指明相应的运行级别以关闭独立系统。 | |
关闭所有设备的电源。 |
关闭系统(包括以下设备)电源:
|
Oracle Solaris 软件可以持续运行,从而使电子邮件和网络软件可以正常工作。但是,某些系统管理任务和紧急情况需要关闭系统,使其进入可以安全断电的级别。在某些情况下,需要使系统进入中间级别,在此级别并非所有系统服务都可用。
这类情况包括以下几项:
添加或删除硬件
为预期停电做准备
执行文件系统维护,如备份
有关需要关闭系统的系统管理任务的完整列表,请参见第 9 章。
有关使用系统电源管理功能的信息,请参见 pmconfig(1M) 手册页。
关闭系统的主要方法是使用 init 和 shutdown 命令。这两个命令都会执行系统的正常关闭。同样,系统会将所有的文件系统更改写入磁盘,并以正常方式终止所有系统服务、进程和操作系统。
由于系统服务会突然终止,因此使用系统的 Stop 组合键或关闭系统然后再将其打开都不是正常关机。但是,有时在紧急情况下需要执行这些操作。有关系统恢复技术的说明,请参见第 12 章和第 13 章。
在运行 Solaris 10 6/06 发行版(或更高版本)的 x86 系统上,按下并松开电源按钮可启动系统的正常关闭。此方法与使用 init 5 命令等效。
命令 |
说明 |
何时使用 |
---|---|---|
shutdown |
由于系统会通知用户即将发生关闭操作,因此建议对在运行级别 3 运行的服务器使用此命令。另外,还会通知正在从即将关闭的服务器装入资源的系统。 |
|
init |
建议在不影响其他用户的情况下对独立系统使用此命令。由于系统不会通知用户即将发生的关闭操作,因此该命令可以更快地关闭系统。 |
|
reboot |
init 命令是首选方法。 |
|
halt、poweroff |
由于此命令不会关闭所有进程并卸载所有其余的文件系统,因此不建议使用它。仅在紧急情况下或大多数服务已停止时,才应停止服务,而无需执行正常关机操作。 |
启动 shutdown 命令时,系统会向当前登录到该系统的所有用户以及从受影响系统挂载资源的所有系统广播一条警告,然后发出最终的关闭消息。
出于此原因,需要关闭服务器时首选 shutdown 命令,而不是 init 命令。使用这任一命令时,您可能需要向用户发送电子邮件,提供有关任何预定系统关闭的通知。
使用 who 命令可以确定系统中需要通知的用户。此命令还可用于确定系统的当前运行级别。有关更多信息,请参见确定系统的运行级别 和 who(1) 手册页。
以下示例说明如何显示登录到系统的用户。
$ who holly console May 7 07:30 kryten pts/0 May 7 07:35 (starlite) lister pts/1 May 7 07:40 (bluemidget) |
第一列中的数据标识登录用户的用户名。
第二列中的数据标识登录用户的终端线。
第三列中的数据标识用户登录的日期和时间。
第四列中的数据(如果存在)标识用户从远程系统登录时的主机名。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
了解用户是否已登录到系统。
# who |
屏幕上会显示所有登录用户的列表。您可能需要发送邮件或广播消息,以使用户知道系统即将关闭。
# shutdown -iinit-level -ggrace-period -y |
使系统进入到与缺省级别 S 不同的 init 级别。选项包括 0、1、2、5 和 6。
运行级别 0 和 5 是为关闭系统而保留的状态。运行级别 6 用于重新引导系统。运行级别 2 可用作多用户操作状态。
指示系统关闭前的时间(以秒为单位)。缺省值为 60 秒。
继续关闭系统,无需任何介入。否则,系统会提示您在 60 秒后继续执行关闭过程。
有关更多信息,请参见 shutdown(1M) 手册页。
如果系统要求您确认,请键入 y。
Do you want to continue? (y or n): y |
如果使用了 shutdown -y 命令,系统将不提示您继续操作。
如果看到提示,请键入超级用户口令。
Type Ctrl-d to proceed with normal startup, (or give root password for system maintenance): xxxxxx |
完成系统管理任务后,请按 Control-D 组合键,以返回到缺省的系统运行级别。
使用下表确认系统是否处于您在 shutdown 命令中指定的运行级别。
指定的运行级别 |
基于 SPARC 的系统提示符 |
基于 x86 的系统提示符 |
---|---|---|
S(单用户级别) |
# |
# |
0(电源关闭级别) |
ok 或 > |
Press any key to reboot |
运行级别 3(共享远程资源的多用户级别) |
hostname console login: |
hostname console login: |
在以下示例中,使用 shutdown 命令可使基于 SPARC 的系统在三分钟内进入运行级别 S(单用户级别)。
# who root console Jun 14 15:49 (:0) # shutdown -g180 -y Shutdown started. Mon Jun 14 15:46:16 MDT 2004 Broadcast Message from root (pts/4) on venus Mon Jun 14 15:46:16... The system venus will be shut down in 3 minutes . . . Broadcast Message from root (pts/4) on venus Mon Jun 14 15:46:16... The system venus will be shut down in 30 seconds . . . INIT: New run level: S The system is coming down for administration. Please wait. Unmounting remote filesystems: /vol nfs done. Shutting down Solaris Management Console server on port 898. Print services stopped. Jun 14 15:49:00 venus syslogd: going down on signal 15 Killing user processes: done. Requesting System Maintenance Mode SINGLE USER MODE Root password for system maintenance (control-d to bypass): xxxxxx single-user privilege assigned to /dev/console. Entering System Maintenance Mode # |
在以下示例中,使用 shutdown 命令可使基于 SPARC 的系统在 5 分钟内进入运行级别 0,而无需进行其他确认。
# who root console Jun 17 12:39 userabc pts/4 Jun 17 12:39 (:0.0) # shutdown -i0 -g300 -y Shutdown started. Thu Jun 17 12:40:25 MST 2004 Broadcast Message from root (console) on pretend Thu Jun 17 12:40:25... The system pretend will be shut down in 5 minutes . . . Changing to init state 0 - please wait # INIT: New run level: 0 The system is coming down. Please wait. System services are now being stopped. . . . The system is down. syncing file systems... done Program terminated Type help for more information ok |
如果要使系统进入运行级别 0 以关闭所有设备的电源,请参见如何关闭所有设备的电源。
在以下示例中,使用 shutdown 命令可将基于 SPARC 的系统在两分钟内重新引导至运行级别 3。不需要进行其他确认。
# who root console Jun 14 15:49 (:0) userabc pts/4 Jun 14 15:46 (:0.0) # shutdown -i6 -g120 -y Shutdown started. Mon Jun 14 15:46:16 MDT 2004 Broadcast Message from root (pts/4) on venus Mon Jun 14 15:46:16... The system venus will be shut down in 2 minutes Changing to init state 6 - please wait # INIT: New run level: 6 The system is coming down. Please wait. . . . The system is down. syncing file systems... done rebooting... . . . venus console login: |
无论您为何关闭系统,您都可能希望返回运行级 3,在该级别下所有的文件资源都可用且用户可以登录。有关使系统返回多用户级别的说明,请参见第 12 章。
需要关闭独立系统时,请使用以下过程。
成为超级用户或同等角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
关闭系统。
# init 5 |
有关更多信息,请参见 init(1M) 手册页。
或者,您也可以使用 uadmin 命令关闭系统。
# uadmin 2 0 |
在运行 Solaris 10 6/06 发行版(或更高版本)的基于 x86 的系统上,可按下并松开电源按钮来启动系统的正常关闭,进而关闭系统。
此功能与使用 init 5 命令关闭系统等效。有关更多信息,请参见关闭和引导系统方面的新增功能。
使用下表验证系统是否处于您在 init 命令中指定的运行级别。
指定的运行级别 |
基于 SPARC 的系统提示符 |
基于 x86 的系统提示符 |
---|---|---|
S(单用户级别) |
# |
# |
2(多用户级别) |
# |
# |
0(电源关闭级别) |
ok 或 > |
Press any key to reboot |
3(共享 NFS 资源的多用户级别) |
hostname console login: |
hostname console login: |
# uadmin 2 0 syncing file systems... done Program terminated |
在此示例中,使用 init 命令可使基于 x86 的独立系统进入可安全关闭电源的级别。
# init 0 # INIT: New run level: 0 The system is coming down. Please wait. . . . The system is down. syncing file systems... [11] [10] [3] done Press any key to reboot |
如果要使系统进入运行级别 0 以关闭所有设备的电源,请参见如何关闭所有设备的电源。
在此示例中,使用 init 命令可使基于 SPARC 的独立系统进入运行级别 S(单用户级别)。
# init s # INIT: New run level: S The system is coming down for administration. Please wait. Unmounting remote filesystems: /vol nfs done. Print services stopped. syslogd: going down on signal 15 Killing user processes: done. SINGLE USER MODE Root password for system maintenance (control-d to bypass): xxxxxx single-user privilege assigned to /dev/console. Entering System Maintenance Mode # |
无论您为何关闭系统,您都可能希望返回运行级 3,在该级别下所有的文件资源都可用且用户可以登录。有关使系统返回多用户级别的说明,请参见第 12 章。
执行以下操作时,需要关闭所有系统设备的电源:
更换或添加硬件。
将系统从一个位置移至另一个位置。
为了预期电源故障或自然灾难(如即将到来的雷暴)做准备。
关闭系统设备的电源,包括 CPU、显示器以及外部设备(如磁盘、磁带和打印机)。
关闭所有系统设备的电源之前,应该先正常地关闭系统,如前几节所述。