如何優(yōu)雅的在Linux下開機(jī)自動(dòng)重啟腳本
1.簡介
經(jīng)常碰到機(jī)器斷電之后需要重啟一大堆服務(wù),為了防止這種事情發(fā)生,設(shè)置開機(jī)自啟的腳本十分的重要,我們習(xí)慣性的做法就是編寫一個(gè)重啟腳本,然后在 /etc/rc.local 中去完成開機(jī)執(zhí)行。例如下面這樣:
- $ cat /etc/rc.local
- bash /root/script/restart.sh
這樣的方法雖然可行,但并不優(yōu)雅。今天我們就給大家介紹兩種更好的實(shí)現(xiàn)方式:
2.通過 Crontab 實(shí)現(xiàn)
Crontab 可以使用 @reboot 來執(zhí)行主機(jī)啟動(dòng)之后的命令。首先在命令行輸入:
- $ crontab -e
然后添加以下內(nèi)容:
- @reboot /root/script/restart.sh
完成后,這個(gè)腳本就可以在重啟的時(shí)候自動(dòng)執(zhí)行了。
其它的一些進(jìn)階玩法:
- 在啟動(dòng)完成后的指定時(shí)間內(nèi)運(yùn)行腳本
- # 在啟動(dòng) 5 分鐘后運(yùn)行指定腳本
- @reboot sleep 300 && /home/wwwjobs/clean-static-cache.sh
3.通過 Systemd 實(shí)現(xiàn)
首先編寫一個(gè)名為 restart 的 Systemd 服務(wù):
- $ vim /lib/systemd/system/restart.service
- [Unit]
- Description=restart
- After=default.target
- [Service]
- ExecStart=/root/script/restart.sh
- [Install]
- WantedBy=default.target
然后啟用這個(gè) Systemd 服務(wù):
- $ systemctl daemon-reload
- $ systemctl enable restart.service
完成后,這個(gè)服務(wù)對應(yīng)的腳本就可以自動(dòng)開機(jī)自啟了。
4.參考文檔
https://www.cyberciti.biz/faq/linux-execute-cron-job-after-system-reboot/