ARM板设置开机自启动应用程序

ARM板设置开机自启动应用程序

解决了开发板开机自启动应用程序的问题,写此博客用来记录,方便以后查阅。

1、环境

开发板:    英创开发板

开发环境:Ubuntu16.04

IDE:         QtCreater4

构建套件:qmake4  +  arm-linux-g++

2、开机启动文件

每个板子都可能有不同的Linux内核,故启动文件不近相同,举例:

/etc/init.d/rcS  

/etc/init.d/rc.local

/etc/profile

/usr/etc/rc.local

我的板子上是/etc/profile

3、添加启动命令

进入开机启动文件,在最后一行添加需要执行的命令。

如:

#./work/test_log                     代表直接开机执行/work下的test_log可执行文件

#cd /work

#./test_log                           拆解成两步执行(存在问题,每次开启一个新连接,输入用户后就会运行一个程序,累加进行)

 

还可以使用开发板资料中的方法,安装烧写软件,直接将程序烧写到NandFlash     

4、程序后台运行

程序启动命令后添加&,进入后台启动程序

程序可以使用命令nohup  & 支持后台运行,关闭终端后,程序也会继续运行

完整命令

nohup  ./work/test_log  > /dev/null & 

将输出重定向到null设备(忽略输出),此命令支持远程服务器后台运行程序,

开机自启可以不使用nohup  &

关闭nohup  ,使用  ps -A查看所有进程,使用kill命令+进程号。

5、要明确程序运行目录和程序所在目录

我就遇到这个问题,我的程序需要读取配置文件。程序手动运行,没有任何问题;开机自启动,无法读取到配置文件,配置文件不存在。

最后发现开机自启程序运行目录和程序所在目录不一致。

介绍Qt两个函数,获取程序运行目录和程序所在目录

/获取程序所在的目录
qDebug()<<"current applicationDirPath: "<<QCoreApplication::applicationDirPath();
//获取当前程序所在工作目录
qDebug()<<"current currentPath: "< 
 

 

你可能感兴趣的:(ARM板设置开机自启动应用程序)