一、修改 /etc/rc.d/rc.local 文件
/etc/rc.d/rc.local 用于用戶(hù)自定義開(kāi)機(jī)啟動(dòng)程序,因此可以往里寫(xiě)開(kāi)機(jī)要執(zhí)行的命令或腳本。
1、設(shè)置 rc.local 的可執(zhí)行權(quán)限
# chmod +x /etc/rc.d/rc.local
2、創(chuàng)建待執(zhí)行的腳本
# cat /home/test.sh #!/bin/bash echo "hello world" >> /home/out.txt date >> /home/out.txt
3、設(shè)置腳本的可執(zhí)行權(quán)限
# chmod +x /home/test.sh
4、把腳本放到 /etc/rc.d/rc.local 尾部
# cat /etc/rc.d/rc.local ... /home/test.sh
5、重啟系統(tǒng)使之生效
# reboot
6、查看日志文件判斷腳本是否執(zhí)行
# cat /home/out.txthello worldThu Dec 30 20:45:00 CST 2021
二、使用 crontab 方式
crond 是 linux 下用來(lái)周期性的執(zhí)行某種任務(wù)或等待處理某些事件的一個(gè)守護(hù)進(jìn)程,與 windows 下的計(jì)劃任務(wù)類(lèi)似,當(dāng)安裝完成操作系統(tǒng)后,默認(rèn)會(huì)安裝此服務(wù) 工具,并且會(huì)自動(dòng)啟動(dòng) crond 進(jìn)程,crond 進(jìn)程每分鐘會(huì)定期檢查是否有要執(zhí)行的任務(wù),如果有要執(zhí)行的任務(wù),則自動(dòng)執(zhí)行該任務(wù)。因此我們可以使用 crondtab 命令創(chuàng)建一個(gè)任務(wù),讓該任務(wù)在重啟時(shí)進(jìn)行執(zhí)行。
# crontab -e//進(jìn)入編輯,輸入如下行@reboot /home/test.sh//重啟設(shè)備# reboot //查看日志# cat /home/out.txthello worldThu Dec 30 21:09:03 CST 2021
三、使用 systemd 服務(wù)
Systemd 服務(wù)是一種以 .service 結(jié)尾的單元(unit)配置文件,用于控制由 Systemd 控制或監(jiān)視的進(jìn)程。簡(jiǎn)單說(shuō),用于后臺(tái)以守護(hù)進(jìn)程(daemon)的形式運(yùn)行程序。systmd service 文件一般放在/etc/systemd/system/文件夾中。
//在/etc/systemd/system/下創(chuàng)建一個(gè)服務(wù),如下# vim ser.service//[Unit] 區(qū)塊:?jiǎn)?dòng)順序與依賴(lài)關(guān)系。[Unit]//Description字段給出當(dāng)前服務(wù)的簡(jiǎn)單描述Description=Run a Custom Script at StartupAfter=default.target//Service區(qū)塊定義如何啟動(dòng)當(dāng)前服務(wù)[Service]//ExecStart字段:定義啟動(dòng)進(jìn)程時(shí)執(zhí)行的命令ExecStart=/home/test.sh//Install區(qū)塊,定義如何安裝這個(gè)配置文件,即怎樣做到開(kāi)機(jī)啟動(dòng)[Install]//WantedBy字段:表示該服務(wù)所在的 Target,Target的含義是服務(wù)組,表示一組服務(wù)WantedBy=default.target//更新服務(wù)配置文件,并使能服務(wù)# systemctl daemon-reload# systemctl enable ser.service//重啟系統(tǒng)# reboot
延伸閱讀1:Linux特點(diǎn)
開(kāi)源免費(fèi)完全兼容 POSIX1.0 標(biāo)準(zhǔn)多用戶(hù)多任務(wù)良好的界面支持多種平臺(tái)