基于TQT507開發(fā)板分享如何添加自啟動應(yīng)用程序
▲點擊上方“廣州天嵌”關(guān)注公眾號后回復(fù)TQT507獲取板卡規(guī)格書

1. 什么是自啟動應(yīng)用程序??
自啟動應(yīng)用程序是指在操作系統(tǒng)啟動時自動開始運行的應(yīng)用程序。通常,這些應(yīng)用程序被稱為守護進程或服務(wù),它們可以在后臺運行并提供某種類型的服務(wù)。例如,Web 服務(wù)器、數(shù)據(jù)庫服務(wù)器等等都可以設(shè)置為自啟動應(yīng)用程序。
2. 系統(tǒng)啟動流程?
? ? ? ? ? ?

3. init,inittab,init.d,rcX.d??

??
4. /etc/inittab 文件??
init 程序會讀取/etc/inittab這個文件,inittab 由若干條指令組成。每條指令的結(jié)構(gòu)都是一樣的,由以“:”分隔的 4 個段組成,格式如下? ? ? ?
<id>:<runlevels>:<action>:<process>
<id>:每個指令的標識符,不能重復(fù)。但是對于 busybox 的 init 來說,<id>有著特殊意義。對于 busybox 而言<id>用來指定啟動進程的控制 tty,一般我們將串口或者 LCD 屏幕設(shè)置為控制 tty。
<runlevels>:對busybox 來說此項完全沒用,所以空著。
<action>:動作,用于指定<process>可能用到的動作。

?在/etc/inittab文件中
::sysinit:/etc/init.d/rcS
系統(tǒng)啟動以后運行/etc/init.d/rcS 這個腳本文件 。
5. 在/etc/init.d下新建腳本??
buildroot根文件系統(tǒng)中是直接在/etc/init.d/中添加自啟腳本的。默認情況下buildroot構(gòu)建的根文件系統(tǒng)中rcS 文件內(nèi)容如圖所示,打開/etc/init.d/rcS?文件
vi /etc/init.d/rcS ?? ? ? ? ?
rcS 默認會在/etc/init.d 目錄下查找所有以‘S’開頭的腳本,然后依次執(zhí)行這些腳本

在rcS的同級目錄下有許多'S'開頭的腳本文件。

所以我們可以在 /etc/init.d目錄下創(chuàng)建一個以‘S’開頭的自啟動腳本文件,比如創(chuàng)建一個名為 Shello 的自啟動文件,命令如下:
cd /etc/init.d/ ? ? ? ?//進入/etc/init.d 目錄 ? ? ? ? ? ?
touch Shello ? ? ? ? ?//使用 touch 命令創(chuàng)建 Shello 腳本 ? ? ? ? ? ?
chmod 777 Shello ? ? //給 Shelloworld 腳本可執(zhí)行權(quán)限 ? ? ? ? ? ?
然后在 Shello 腳本里面輸入要執(zhí)行的命令,比如要在根目錄創(chuàng)建 helloworld 文件夾,然后在 helloworld文件夾里面創(chuàng)建 test 文件,那么 Shello 腳本內(nèi)容如圖所示:
#!/bin/sh ? ? ? ? ? ?
cd / ? ? ? ? ? ?
mkdir helloworld ? ? ? ? ? ?
cd helloworld ? ? ? ? ? ?
touch test

輸入完后,保存退出,執(zhí)行reboot重啟
reboot
重啟后,可以看見文件創(chuàng)建成功
