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: "<<QDir::currentPath();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM