出现/bin/sh: can't access tty; job control turned off的解决方案

问题现象:
移植完busybox后开机启动,在终端中打印出一条:/bin/sh: can't access tty; job control turned off信息


问题分析:
首先来了解下inittable文件,该文件保存在/etc/inittable
如果存在/etc/inittable文件,Busybox init 程序解析它,然后按照他的指示创建各种子进程,否则使用默认的配置创建子进程.
/etc/inittable文件中每个条目用来定义一个子进程,并确定它的启动方法,格式定义如下:
<id>:<runlevels>:<action>:<process>

例如:
ttySAC0::askfirst:-/bin/sh

对于Busybox init进程,上述各个字段作用如下:
<id>: 表示这个子进程要使用的控制台(既标准输入、标准输出、标准错误设备)。若果省略,则使用与init进程一样的控制台
<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