我不知道“single user mode”是否是正确的术语,但我在这里:
在GRUB菜单上,我按下E编辑运行配置.对于以linux开头的行,我附加了以下内容:
rw init=/bin/bash
并按下F10.计算机启动到root shell而不询问任何密码.
问题是,信号不起作用.例如,当我运行命令时,我无法通过按Ctrl C退出该命令.
这是预期的吗?如果是,这是什么原因以及如何解决这个问题?它是否与单用户模式下的终端仿真器有关?
解决方法:
单用户模式在很长一段时间内都不是正确的术语.在20世纪90年代,曾经是单用户模式分为紧急模式和救援模式.你实际上并没有使用任何一个.
你实际上做的是一个糟糕的想法,因为它涉及将程序作为进程#1运行,而不是为了执行进程#1实际需要做的工作.你最好使用紧急或救援模式,后者是由你所指出的答案所接受的答案所引用的.
是的,信号会很奇怪.对于初学者来说,进程#1对于信号具有特殊的语义,这是init = / bin / bash是个不好主意的几个原因之一.此外,当/ dev / console是其标准I / O时,作业控制shell无法进行作业控制,但没有任何设置与控制终端建立正确的会话,因为Bourne Again shell在启动时实际上已经告诉您.
使用一些简单的链式加载工具可以与控制终端建立正确的会话,从而启用作业控制和信号传递到前台进程组,但这并不能解决所有其他会出错的问题. / bin / bash作为进程#1程序,因为你必须手动明确地做它们.
只需使用救援模式或紧急模式.
进一步阅读
> Jonathan de Boyne Pollard(2016年). The gen on emergency and rescue mode bootstrap.经常给出答案.
> https://unix.stackexchange.com/a/251228/5132
> https://unix.stackexchange.com/a/197472/5132
> https://unix.stackexchange.com/a/392612/5132
> Jonathan de Boyne Pollard. open-controlling-tty
. nosh工具集.
软件.
> Jonathan de Boyne Pollard. setsid
.nosh工具集.
软件.
> Jonathan de Boyne Pollard. vc-get-tty
. nosh工具集.
软件.