问题描述
印象中,我们开机自启动程序是在文件夹/etc/init.d/rcS中,今天我在测试我的QT程序的时候发现,并不能开机启动
- 文件介绍,auto.sh是在目录/etc/init.d/下,脚本的作用是为了运行QT程序的,稍后为会贴出来的,ACU为QT 程序在目录/app下。
- 首先我修改了/etc/init.d/rcS
#!/bin/sh
echo "start#########################&&&&&&****************"
chown root:root /var/empty
chmod 744 /var/empty
/usr/sbin/sshd &
echo "?????????????????????????????????????????????????"
/sbin/utelnetd -d &
chown root:root /var/ftp
chmod 755 /var/ftp
chown root:root /etc/vsftpd.conf
/usr/sbin/vsftpd &
echo "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"
./bin/boa &
#/etc/init.d/auto.sh &
#这句是我要运行的程序,现在注释掉了
echo "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"
exec /etc/init.d/rc S
echo "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"
其中我打印了很多的LOG信息用于分辨程序运行到了那里
重新启动之后,可以看到缺少了LOG信息,这也是我为什么要将,、etc/init.d/rcS放到了 exec /etc/init.d/rc S之前,这就是说没有运行到,我没有去深究是什么原因引起的。就现在这个位置,我发现程序运行起来了,但是串口,显示没有初始化,同时我准备用网络登录的时候发现网络也没有初始化,也就是说这个位置是不行的。
根据最后一句判断,那我就找到vi /etc/init.d/rc
在最后加入
cd /etc/init.d/
.
.
.
//最后加入
./auto.sh &
最后正常运行
- auto.sh
#!/bin/bash
export TSLIB_ROOT=/arm-tslib
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event1
export TSLIB_CONFFILE=/arm-tslib/etc/ts.conf
export TSLIB_PLUGINDIR=/arm-tslib/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export LD_PRELOAD=$TSLIB_ROOT/lib/libts.so
export QT_QPA_FB_TSLIB=1QT_QPA_FB_TSLIB=1
export QT_ROOT=/arm-qt
export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event1:edevmouse:/dev/input/event3
export QT_QPA_FONTDIR=/arm-qt/lib/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
export QT_PLUGIN_PATH=$QT_ROOT/plugins
export LD_LIBRARY_PATH=$QT_ROOT/lib:$QT_ROOT/plugins/platforms
cd /app
./ACU