出现/bin/sh: can't access tty; job control turned off的解决方案
(2011-07-18 11:30:50)
标签:
杂谈 |
分类: 嵌入式Linux |
出现/bin/sh: can't access tty; job control turned off的解决方案
问题现象:
移植完busybox后开机启动,在终端中打印出一条:/bin/sh: can't access tty; job control
turned off信息
问题分析:
如果存在/etc/inittable文件,Busybox init
程序解析它,然后按照他的指示创建各种子进程,否则使用默认的配置创建子进程.
/etc/inittable文件中每个条目用来定义一个子进程,并确定它的启动方法,格式定义如下:
<id>:<runlevels>:<action>:<process>
例如:
ttySAC0::askfirst:-/bin/sh
对于Busybox init进程,上述各个字段作用如下:
<id>:
<runlevels>:对于busybox
init程序,这个字段没有意思,可以省略。
<action>:表示init进程如何控制这个子进程。
<process>:要执行的程序,它可以只可执行程序,也可以是脚本
如果<process>字段前有“-”字符,这个程序被称为“交互的”
所以:::sysinit:/bin/sh 使用的是和init进程一样的控制台
而我们的console使用的是ttySAC0,所以就报错了。
问题解决办法:
修改/etc/inittable
#System initialization by xiongjinfei
::sysinit:/etc/init.d/rcS
::sysinit:/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
修改如下:
#System initialization by xiongjinfei
::sysinit:/etc/init.d/rcS
ttySAC0::sysinit:/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r