欢迎光临天津华金科技
马上发布信息
详情描述
改变Solaris 系统运行级别 init

这是一个关于在 Solaris 系统上改变运行级别(run level,也称为 init 状态)的详细说明。

核心概念:运行级别

在传统的 Unix System V(如 Solaris)中,运行级别定义了系统提供的一组特定服务。改变运行级别意味着停止当前级别的一组进程,并启动新级别定义的一组进程。

Solaris 常用的运行级别有:

  • 0: 关机状态。用于安全关闭系统电源。
  • 1S: 单用户(管理)模式。只有 root 文件系统被挂载,基本系统进程运行。用于系统维护、修复。
  • 2: 多用户模式(无网络服务)。这是默认的非网络多用户状态。所有本地服务启动,但 NFS 等服务不启动。
  • 3: 多用户模式(带网络服务)。标准的完全多用户操作状态。所有网络服务(NFS、共享等)都会启动。这是服务器通常的运行级别。
  • 4: 用户自定义。通常未使用。
  • 5: 关机并安全断电。在一些系统上会先执行 init 0,然后如果硬件支持则切断电源。
  • 6: 重启。停止所有服务,然后重新启动系统。

注意: 从 Solaris 10 开始,引入了 SMF(服务管理设施) 作为主要的服务管理框架,但传统的运行级别概念仍然存在并与 SMF 集成。

改变运行级别的命令

1. init 命令 (最直接的方法)

这是改变运行级别的标准命令。你需要 root 权限。

# 切换到运行级别 3(启动网络服务)
su - root
init 3

# 重启系统
init 6

# 关机
init 0

# 进入单用户维护模式
init s
# 或
init 1

重要提示: 直接执行 init 6init 0 会立即执行操作。请确保已保存所有工作。

2. shutdown 命令 (更安全、更可控)

这是一个更友好、更安全的关机或重启方式,允许你广播警告信息并延迟执行。

# 立即关闭系统到运行级别 0(关机)
shutdown -i0 -g0 -y

# 在5分钟后重启系统(运行级别 6),并向所有登录用户发送警告信息
shutdown -i6 -g300 -y "系统将于5分钟后重启进行维护,请保存您的工作!"

# 进入单用户模式(运行级别 S)
shutdown -iS -g60 -y
  • -i: 指定目标运行级别(0, 1, S, 5, 6)。
  • -g: 宽限期(grace period),以秒为单位。在采取行动前的等待时间。
  • -y: 自动对提示回答 “yes”,用于脚本中。
3. reboot, halt, poweroff 命令

这些是便捷命令,通常指向 shutdown 的链接。

reboot    # 等同于 init 6 或 shutdown -i6 -g0 -y
halt      # 停止系统,但可能不切断电源
poweroff  # 停止系统并切断电源(如果支持)

查看当前运行级别

who -r

输出示例:

run-level 3  Apr 10 10:30  3  0  S

这表示当前运行级别是 3

SMF 时代的注意事项(Solaris 10 及以后)

虽然 init 命令仍然有效,但服务的启动和停止由 SMF 管理。运行级别转变实际上是通过 SMF 的“里程碑”(milestone)来触发的。

  • 里程碑 是服务集合的快照,与传统运行级别对应:
    • milestone/single-user:default -> 运行级别 S/1
    • milestone/multi-user:default -> 运行级别 2
    • milestone/multi-user-server:default -> 运行级别 3

使用 svcadm 切换到里程碑

# 切换到多用户带网络模式(相当于 init 3)
svcadm milestone -d milestone/multi-user-server:default

# 切换到单用户模式
svcadm milestone -d milestone/single-user:default

-d 选项指定目标里程碑。

如何设置默认运行级别

系统的默认运行级别在 /etc/inittab 文件中定义(Solaris 10 之前),但在 Solaris 10+ 中,这个文件通常只包含一个指向 SMF 的条目。

对于现代 Solaris (10+): 默认运行级别由 SMF 的 milestone 决定。系统启动时会自动进入 milestone/multi-user-server:default(即运行级别 3)。

如果你想修改启动行为,通常不是修改一个简单的“默认级别”,而是通过启用或禁用特定服务,或者创建自定义的启动脚本来实现。

对于传统 Solaris (9 及之前): 编辑 /etc/inittab,找到类似下面的一行:

is:3:initdefault:

将数字 3 改为你想要的默认运行级别(例如 2s),然后重启系统生效。修改此文件需格外小心。

总结与最佳实践

你的目的 推荐命令 说明
正常重启 init 6reboot 快速直接
正常关机 init 0poweroff 快速直接
计划性关机/重启 shutdown -i6 -g300 -y "消息" 给用户警告时间,最安全
进入单用户维护模式 init s 用于修复系统
返回多用户带网络模式 init 3exit (从单用户) 从单用户模式退出时通常会自动到级别 3
查看当前级别 who -r
(Solaris 10+) 使用 SMF 切换 svcadm milestone 更符合现代 Solaris 管理哲学

警告

  • 改变运行级别(尤其是 init 0, init 6, init s)会影响所有用户和服务。
  • 在生产环境中操作前,务必通知用户。
  • 在单用户模式下,你是唯一的用户,拥有完全控制权,操作要谨慎。
相关帖子
2026年流行的智能种植机,是如何自动调节光、温、水、气、肥的?
2026年流行的智能种植机,是如何自动调节光、温、水、气、肥的?
剪纸创作中如何灵活运用“月牙纹”、“锯齿纹”等基础纹样组合?
剪纸创作中如何灵活运用“月牙纹”、“锯齿纹”等基础纹样组合?
劳务派遣员工达到退休年龄,其养老金待遇的计算会有什么特殊之处吗?
劳务派遣员工达到退休年龄,其养老金待遇的计算会有什么特殊之处吗?
2026年房产继承公证的费用是如何计算的?是否有新的收费标准?
2026年房产继承公证的费用是如何计算的?是否有新的收费标准?
婚礼红包除了现金,还有哪些既有创意又能表达心意的替代方式?
婚礼红包除了现金,还有哪些既有创意又能表达心意的替代方式?
从食品安全角度看,生熟食的砧板和刀具分开使用,究竟能避免哪些潜在风险?
从食品安全角度看,生熟食的砧板和刀具分开使用,究竟能避免哪些潜在风险?
不同城市在平衡市容管理与小商贩生存空间方面,有哪些值得借鉴的经验?
不同城市在平衡市容管理与小商贩生存空间方面,有哪些值得借鉴的经验?
身份证后四位中的校验码有什么作用?它是如何保障号码准确性的?
身份证后四位中的校验码有什么作用?它是如何保障号码准确性的?
2026年,租购同权政策在鼓励长期稳定租赁方面有哪些具体的激励措施?
2026年,租购同权政策在鼓励长期稳定租赁方面有哪些具体的激励措施?
2026年新规下,员工口头或书面同意放弃社保,企业是否就能免除缴纳责任?
2026年新规下,员工口头或书面同意放弃社保,企业是否就能免除缴纳责任?
如果公司试用期不交社保,对员工未来的养老和医疗会有何影响?
如果公司试用期不交社保,对员工未来的养老和医疗会有何影响?
科学研究揭示,规律的冥想练习对改善睡眠质量究竟有多大帮助?
科学研究揭示,规律的冥想练习对改善睡眠质量究竟有多大帮助?
在保证核心体温的前提下,身体哪些部位可以适当减少衣物层数?
在保证核心体温的前提下,身体哪些部位可以适当减少衣物层数?
间歇性禁食对于不同体质和生活方式的人群,其适应性和效果争议何在?
间歇性禁食对于不同体质和生活方式的人群,其适应性和效果争议何在?
谷雨节气与雨水、清明等相邻节气在物候现象上有哪些主要区别?
谷雨节气与雨水、清明等相邻节气在物候现象上有哪些主要区别?
进口冷链食品包装上的追溯码具体包含哪些信息,消费者该如何正确解读?
进口冷链食品包装上的追溯码具体包含哪些信息,消费者该如何正确解读?
领取失业保险金期间,个人的医疗保险和养老保险会如何处理?
领取失业保险金期间,个人的医疗保险和养老保险会如何处理?
灵活就业人员绑定家庭共济后,家人使用共济资金是否有顺序或额度的限制?
灵活就业人员绑定家庭共济后,家人使用共济资金是否有顺序或额度的限制?