嵌入式Linux中讓應用程序自動啟動


在很多嵌入式系統中,由於可用資源較少,常常在系統啟動后就直接讓應用程序自動啟動,以減少用戶操作和節省資源。如何讓自己的應用程序自動啟動呢?    在Linux系統中,配置應用程序自動啟動的方法有以下三種:
1.通過/Linuxrc腳本直接啟動
Linux內核一旦開始執行,它將通過驅動程序來初始化所有硬件設備,這個初始化過程可以在啟動時的PC顯示器上看到,每個驅動程序都打印一些相關信息。初始化完成后,通常調用的是init,通過loader調用init內的init=/app_program語句(通過loader向核心傳入init=/program可以定制首先運行的程序)
比如在桌面Linux系統中,init進程會讀取/etc/inittab文件,來決定執行級別和哪些腳本和命令。嵌入式應用開發中,可以根據實際情況決定是否使用標准的init執行方式,也許這個init是個靜態程序,它能夠完成我們的嵌入應用的特定任務,那完全不用考慮inittab了,在這里可以采用比較靈活的措施。
2.在/etc/init.d下添加啟動腳本
一般情況下,大多數的Linux操作系統使用/etc/init.d/(或/etc/rc.d/init.d)下的腳本來配置應用程序的自動啟動。
例如,在某些Linux系統中,corn程序通過/etc/init.d/corn腳本啟動,Apache通過/etc/init.d/httpd啟動,syslogd通過/etc/init.d/syslogd啟動,而sshd則通過/etc/init.d/sshd腳本啟動。
通常這些腳本通過來自特定rc.d目錄的符號鏈接運行。為了配置從哪個rc.d目錄運行腳本,Linux系統提供了許多不同的工具,同時也可以手工進行配置。Linux系統有一個包含所有實際啟動腳本文件的目錄。它可能是/etc/init.d,也可能是/etc/rc.d/rc.d。同時對應每個運行級別(runlevel)又有一個另外的目錄,它們可能是/etc/rc2.d,也可能是/etc/rc.d/rc2.d。這些目錄中的文件通常是指向實際腳本文件的符號鏈接。
3.直接在/etc/rc.d/rc.local腳本中添加命令
在Linux系統中,有一個類似Windows系統中autoexec.bat的文件,它就是/etc/rc.d/rc.local,系統開機后自動運行用戶的應用程序或啟動系統服務的命令保存在開發板根文件系統的這個文件中。因此可以編輯rc.local文件,將要執行的程序(命令)添加到該文件夾中。Linux系統在啟動后還未登錄前,將自動執行該程序(命令),達到開機自動運行用戶的應用程序的目的。
下面具體說明:
首先解壓ramdisk.image.gz文件,然后掛載到系統中。接着創建自己的應用程序文件夾hello,將所要自動運行的應用程序hello復制到該文件夾。
然后打開/usr/etc/rc.local文件,在最后一行加入:/Myapp/hello/hello
再按上面的順序將ramdisk.image打包下載到目標板,啟動運行,則可以看到用戶編寫的應用程序一啟動就運行起來了。
本文參考《基於ARM9的嵌入式Linux開發技術》,李新峰等編著。


免責聲明!

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



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