|
开机自动运行rc.local脚步,里面的内容如下:
#!/bin/sh
/sbin/ifconfig lo 127.0.0.1 up
/sbin/route add 127.0.0.0 lo
/sbin/ifconfig eth0 192.168.1.214 up
/sbin/route add -net 192.168.1.0 netmask 255.255.255.0 eth0
/sbin/route add default gw 192.168.1.1 eth0
echo
echo "any key to stop running POS..."
echo
while
read -n1 -t1 key;
do
if [ ! -z "$key" ]
then
clear && ls && exit 1;
fi
done
/home/bin/nano-X & /home/bin/MainApp
/sbin/hwclock -w
sync
exit 0
问题出在以下部分:
while
read -n1 -t1 key;
do
if [ ! -z "$key" ]
then
clear && ls && exit 1;
fi
done
/home/bin/nano-X & /home/bin/MainApp
默认等待1秒,如果有按键,则exit 1到终端下;如果没,自动运行指定程序。
因为我的程序MainApp会用到并口打印机的,结果当打印机未上电时,程序会死掉,连linux内核都死掉(键盘灯不受控制)。。。
但我将
while
read -n1 -t1 key;
do
if [ ! -z "$key" ]
then
clear && ls && exit 1;
fi
done
这部分代码删除后,问题解决了。。。。
初步怀疑是,在运行MainApp程序后,上面的死循环和我发到并口的信息有冲突,但具体原因不明。。。我尝试将该部分代码放到rc.local之前的脚步运行,但问题依旧。。。
请问,上面的脚步写的有问题嘛?能实现自动等待检测按键输入,超时跳过的功能,有别的办法嘛?? |
|