Linux開機(jī)自啟動(dòng)腳本存放在/etc/rc.d或/etc/init.d目錄下。這些目錄是Linux系統(tǒng)中用于存放啟動(dòng)腳本的標(biāo)準(zhǔn)目錄。具體而言,/etc/rc.d目錄是Red Hat系列發(fā)行版使用的目錄,而/etc/init.d目錄是Debian系列發(fā)行版使用的目錄。
在這些目錄中,你可以找到各種以.sh或無后綴的腳本文件。這些腳本文件定義了在系統(tǒng)啟動(dòng)過程中需要執(zhí)行的命令和任務(wù)。
要將腳本設(shè)置為開機(jī)自啟動(dòng),需要在/etc/rc.d或/etc/init.d目錄下創(chuàng)建一個(gè)符號(hào)鏈接(symbolic link),將腳本鏈接到相應(yīng)的運(yùn)行級(jí)別(runlevel)目錄中。運(yùn)行級(jí)別目錄通常位于/etc/rc.d/rcX.d或/etc/rcX.d,其中X是運(yùn)行級(jí)別的數(shù)字。
運(yùn)行級(jí)別是系統(tǒng)在不同狀態(tài)下的操作模式。常見的運(yùn)行級(jí)別包括0(關(guān)機(jī))、1(單用戶模式)、2(多用戶模式,沒有網(wǎng)絡(luò)服務(wù))、3(多用戶模式,有網(wǎng)絡(luò)服務(wù))、5(圖形界面模式)等。
在運(yùn)行級(jí)別目錄中,以字母S或K開頭的腳本文件表示啟動(dòng)或停止服務(wù)。S開頭的腳本文件在相應(yīng)運(yùn)行級(jí)別啟動(dòng)時(shí)被執(zhí)行,K開頭的腳本文件在相應(yīng)運(yùn)行級(jí)別停止時(shí)被執(zhí)行。這些腳本文件的命名規(guī)則是Snnname或Knnname,其中nn是一個(gè)兩位數(shù)字,表示腳本的執(zhí)行順序,name是腳本的名稱。
例如,如果你的腳本文件是myscript.sh,你可以在/etc/rc.d或/etc/init.d目錄下創(chuàng)建一個(gè)符號(hào)鏈接來啟動(dòng)它。假設(shè)你希望在運(yùn)行級(jí)別3啟動(dòng)該腳本,你可以執(zhí)行以下命令:
ln -s /etc/init.d/myscript.sh /etc/rc.d/rc3.d/S99myscript
這將在/etc/rc.d/rc3.d目錄下創(chuàng)建一個(gè)名為S99myscript的符號(hào)鏈接,指向/etc/init.d/myscript.sh。當(dāng)系統(tǒng)進(jìn)入運(yùn)行級(jí)別3時(shí),S99myscript將被執(zhí)行,從而啟動(dòng)你的腳本。
同樣,如果你希望在運(yùn)行級(jí)別3停止該腳本,你可以執(zhí)行以下命令:
ln -s /etc/init.d/myscript.sh /etc/rc.d/rc3.d/K01myscript
這將在/etc/rc.d/rc3.d目錄下創(chuàng)建一個(gè)名為K01myscript的符號(hào)鏈接,指向/etc/init.d/myscript.sh。當(dāng)系統(tǒng)離開運(yùn)行級(jí)別3時(shí),K01myscript將被執(zhí)行,從而停止你的腳本。
需要注意的是,為了使腳本能夠在系統(tǒng)啟動(dòng)和關(guān)閉時(shí)正確執(zhí)行,你需要確保腳本具有可執(zhí)行權(quán)限??梢允褂?span style="color:#C7254E;background: #F9F2F4;">chmod命令為腳本添加執(zhí)行權(quán)限,例如:
chmod +x /etc/init.d/myscript.sh
這樣,你的腳本就會(huì)在Linux系統(tǒng)啟動(dòng)時(shí)自動(dòng)執(zhí)行了。