方案一、rc.local
1、創建腳本install.sh。放在任意目錄下,eg:root/shell目錄下
並給install.sh 設置執行權限:Chmod 777 install.sh
2、在 /etc/rc.local 末尾增加 install.sh 腳本
vim /etc/rc.local
# 追加到末尾即可。
/root/shell/install.sh
注意:執行chmod +x /etc/rc.d/rc.local來確保確保這個腳本在引導時執行。
3、並給 rc.local 設置執行權限【一般都不用自己設置】
chmod +x /etc/rc.local
4、重新啟動,驗證結果。
更多參考:centos 7.1開機/etc/rc.local腳本不執行的問題
我在 帶桌面UI的系統上,做編譯PCI硬件驅動的腳本時,按此配置后,沒有生效(尚不清楚為何) 可嘗試方案二。
而在不帶UI,純命令行系統上時,用此方案是可以的。
方案二、chkconfig
實戰:最近在做一個密碼卡設備項目時,關機后驅動程序被刪除了,所以需要每次開機后都自動安裝驅動程序。
首先,將設備的linux驅動拷貝到/home/driver/linux
1、編寫腳本:/home/driver/install.sh
說明:前三行是chkconfig的腳本啟動規范。
chkonfig后面是啟動級別和優先級,description后面是服務描述。如下面腳本意思是,
服務必須在運行級3,4,5下被啟動或關閉,啟動的優先級是88,停止的優先級是14。優先級范圍是0-100,數字越大,優先級越低。
參考:Linux 系統啟動過程
#! /bin/bash
#chkconfig: 345 88 14
#decription:autostart
cd /home/driver/linux
make
chmod +x loaddrv
./loaddrv
cd /dev
chmod 777 swcsm-*
2、將腳本復制到/etc/rc.d/init.d目錄下
cp /home/driver/install.sh /etc/rc.d/init.d
3、增加腳本的可執行權限
chmod +x /etc/rc.d/init.d/install.sh
4、添加腳本到開機自動啟動項目中
cd /etc/rc.d/init.d
chkconfig --add install.sh
chkconfig install.sh on
實測時,在不帶ui的 純命令行操作系統上時,重啟機器時,發現關機和開機時都執行了一遍。(然而不想在關機的時候也啟動,暫時沒想到什么好的方法)
方案三、systemd
可以通過systemd添加自定義服務啟動,可以參見:CentOS7上設置FreeSwitch自啟動