如何優(yōu)雅的在 Linux 下開(kāi)機(jī)自動(dòng)重啟腳本
點(diǎn)擊上方“程序員大白”,選擇“星標(biāo)”公眾號(hào)
重磅干貨,第一時(shí)間送達(dá)
轉(zhuǎn)自:奇妙的linux世界
1簡(jiǎn)介
經(jīng)常碰到機(jī)器斷電之后需要重啟一大堆服務(wù),為了防止這種事情發(fā)生,設(shè)置開(kāi)機(jī)自啟的腳本十分的重要,我們習(xí)慣性的做法就是編寫(xiě)一個(gè)重啟腳本,然后在 /etc/rc.local 中去完成開(kāi)機(jī)執(zhí)行。例如下面這樣:
$ cat /etc/rc.local
bash /root/script/restart.sh
這樣的方法雖然可行,但并不優(yōu)雅。今天我們就給大家介紹兩種更好的實(shí)現(xiàn)方式:
2通過(guò) Crontab 實(shí)現(xiàn)
Crontab 可以使用 @reboot 來(lái)執(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通過(guò) Systemd 實(shí)現(xiàn)
首先編寫(xiě)一個(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ù)對(duì)應(yīng)的腳本就可以自動(dòng)開(kāi)機(jī)自啟了。
4參考文檔
https://www.google.com https://tinyurl.com/6ryafefw https://www.cyberciti.biz/faq/linux-execute-cron-job-after-system-reboot/
推薦閱讀
關(guān)于程序員大白
程序員大白是一群哈工大,東北大學(xué),西湖大學(xué)和上海交通大學(xué)的碩士博士運(yùn)營(yíng)維護(hù)的號(hào),大家樂(lè)于分享高質(zhì)量文章,喜歡總結(jié)知識(shí),歡迎關(guān)注[程序員大白],大家一起學(xué)習(xí)進(jìn)步!
評(píng)論
圖片
表情


