我继承了有关在 Solaris 上进入单用户模式的说明,例如:
- 执行
reboot -- -s
- 挂载所有文件系统
我的问题是,为什么不直接这样做:
init 1
有什么不同?
答案1
David,运行级别 1 和 s 是等效的。这两个命令的主要区别在于,reboot 将重置系统,使其尽可能处于干净的状态,而“init s”将直接切换到单用户模式而不重置系统 - 这可能更快,但可能会留下“垃圾”(任何缺少 utmpx 条目的进程都可能无法关闭,等等)。
有一些细微的差别,因为“init s”在 /etc/inittab 运行中不会有任何 boot 或 bootwait 条目,但这种情况不太可能发生。
迈克尔,您说得不对,init 不理解 SMF(svcadm 的东西);但它理解。
xenny,-s 标志的关键是紧跟在 reboot 命令后面的“--”。这表示“--”后面的任何内容都应直接传递给引导加载程序和内核 - 请参阅 reboot 联机帮助页中的 boot_arguments 部分。
答案2
我相信“init 1”不会将系统设置为单用户模式.....你必须使用
init s
反而。
如果对您的声明进行了编辑,那么就会有很大的不同。重启命令基本上会完全关闭系统,然后从零开始启动到单用户模式。
简单的 init X 将仅运行脚本以将系统转换为请求的状态 X。UNIX 类型系统和 Linux 类型系统对启动/关闭脚本的选择有所不同。不会发生重新启动(当然,转换为状态 0 和 6 除外)。
答案3
reboot 将重新启动内核。init 应该让机器进入单用户模式,并在进入单用户模式的过程中终止进程,而无需重新启动内核。
在我的 solaris 机器上, /usr/sbin/reboot 的手册页提供了 dln 或 q 的可能参数,哪个以 's' 为开头的重启选项首先出现在您的路径中?
答案4
从控制台类型
#init 0
然后它会进入 OK 提示符。从那里输入
OK> boot -s
它将启动并要求输入 root 密码才能进入维护模式。输入 root 密码。它将进入单用户模式。输入who -r
以验证。