如何優雅的在 Linux 下開機自動重啓腳本

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 參考文檔

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/yGlu8Zi9WPERDE_EULEsNQ