系统的运行级别(也称为 init 状态)定义用户可以使用哪些服务和资源。系统一次只能在一个运行级别下运行。
Solaris OS 具有八个运行级别,下表对其进行了说明。在 /etc/inittab 文件中,缺省的运行级别指定为运行级别 3。
表 18–2 Solaris 运行级别
运行级别 |
Init 状态 |
类型 |
目的 |
---|---|---|---|
0 |
电源关闭状态 |
电源关闭 | |
单用户 |
以单用户身份运行,挂载并且能够访问某些文件系统。 |
||
1 |
管理状态 |
单用户 | |
2 |
多用户状态 |
多用户 | |
3 |
多用户 | ||
4 |
替换多用户状态 |
|
在缺省情况下未配置,但是可供客户使用。 |
5 |
电源关闭状态 |
电源关闭 |
关闭操作系统,以便可以安全地关闭系统电源。如有可能,自动关闭支持此功能的系统的电源。 |
6 |
重新引导状态 |
重新引导 |
另外,svcadm 命令可用于更改系统的运行级别,方法是选择系统要在其下运行的里程碑。下表显示了与每个里程碑相对应的运行级别。
表 18–3 Solaris 运行级别和 SMF 里程碑
运行级别 |
SMF 里程碑 FMRI |
---|---|
S |
milestone/single-user:default |
2 |
milestone/multi-user:default |
3 |
milestone/multi-user-server:default |
大多数情况下,只需要使用带有运行级别的 init 命令来更改系统状态就足够了。使用里程碑更改系统状态可能会导致混乱,而且可能会导致意外行为。另外,init 命令允许关闭系统,因此,init 是更改系统状态的最佳命令。
但是,在调试启动问题时,使用 none 里程碑引导系统可能会非常有用。none 里程碑没有等效的运行级别。有关具体的说明,请参见如何在不启动任何服务的情况下引导。
通过使用 who -r 命令来显示运行级别信息。
$ who -r |
使用 who -r 命令可针对任何级别确定系统的当前运行级别。
本示例显示系统的当前运行级别以及以前的运行级别的相关信息。
$ who -r . run-level 3 Dec 13 10:10 3 0 S $ |
who -r 命令的输出 |
说明 |
---|---|
run-level 3 |
标识当前的运行级别 |
Dec 13 10:10 |
标识上次更改运行级别的日期 |
3 |
也标识当前的运行级别 |
0 |
标识自上次重新引导以来系统处于该运行级别的次数 |
S |
标识以前的运行级别 |