我试图运行一个小的init脚本而不是sysvinit,这使我陷入了一个shell.我的init脚本代码是:
#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/sbin
mount -t proc proc /proc
mount -t sysfs sysfs /sys
mount -t devtmpfs none /dev
exec sh
Run Code Online (Sandbox Code Playgroud)
但当它让我在shell中出现此错误时:
sh: cannot set terminal process group (-1): Inappropriate ioctl for device
sh: no job control in this shell
Run Code Online (Sandbox Code Playgroud)
该命令tty返回/dev/console.我以root身份被删除,我尝试的命令集正常工作.
该错误消息可能意味着 shell 可能正在调用tcsetpgrp()并返回errno=ENOTTY。如果 shell 进程没有控制终端,就会发生这种情况。init内核在运行之前不会进行设置/dev/console。
您已经找到了解决方案:使用真正的终端设备,例如/dev/tty0.