什么sh:无法设置终端进程组(-1)不正确的ioctl设备错误是什么意思?

时间:2015-08-19 09:02:16

标签: shell

我正在尝试运行一个小的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

但是当它让我陷入shell时会出现这个错误:

sh: cannot set terminal process group (-1): Inappropriate ioctl for device
sh: no job control in this shell

命令tty返回/dev/console。我以root身份被删除,我尝试的命令集正常工作。

1 个答案:

答案 0 :(得分:2)

该错误消息可能意味着shell可能正在调用tcsetpgrp()并返回errno=ENOTTY。如果shell进程没有控制终端,就会发生这种情况。在init上运行/dev/console之前,内核没有对此进行设置。

您已经发现了解决方案:使用真实的终端设备,例如/dev/tty0