如何優雅的在 Linux 下開機自動重啟指令碼

語言: CN / TW / HK

1.簡介

經常碰到機器斷電之後需要重啟一大堆服務,為了防止這種事情發生,設定開機自啟的指令碼十分的重要,我們習慣性的做法就是編寫一個重啟指令碼,然後在 /etc/rc.local 中去完成開機執行。例如下面這樣:

$ cat /etc/rc.local
bash /root/script/restart.sh

這樣的方法雖然可行,但並不優雅。今天我們就給大家介紹兩種更好的實現方式:

2.通過 Crontab 實現

Crontab 可以使用 @reboot 來執行主機啟動之後的命令。首先在命令列輸入:

$ crontab -e

然後新增以下內容:

@reboot /root/script/restart.sh

完成後,這個指令碼就可以在重啟的時候自動執行了。

其它的一些進階玩法:

在啟動完成後的指定時間內執行指令碼

# 在啟動 5 分鐘後執行指定指令碼
@reboot sleep 300 && /home/wwwjobs/clean-static-cache.sh

3.通過 Systemd 實現

首先編寫一個名為 restart 的 Systemd 服務:

$ vim /lib/systemd/system/restart.service

[Unit]
Description=restart
After=default.target

[Service]
ExecStart=/root/script/restart.sh

[Install]
WantedBy=default.target

然後啟用這個 Systemd 服務:

$ systemctl daemon-reload
$ systemctl enable restart.service

完成後,這個服務對應的指令碼就可以自動開機自啟了。

4.參考文件

  • https://www.google.com
  • https://tinyurl.com/6ryafefw
  • https://www.cyberciti.biz/faq/linux-execute-cron-job-after-system-reboot/

本文連結:http://www.yunweipai.com/40250.html