引子
雖然現在docker、k8s大行其道,我們的世界似乎已經被容器主宰,但是有一些程序還是不適合放到docker里面跑,比如node-exporter、自己寫的某些程序,但是這些程序又是必須的,
如果每次重啟機器都需要自己去啟動一次那真的是太累了,所以這些程序需要自啟動。
操作步驟
- 檢查系統目錄/lib/systemd/system/rc-local.service,如果沒有自己新建,文件內容為(如果文件存在本身是沒有[Install]項的,需要自己添加進去)
#### 文件中本身就有的
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no
#### 需要自己添加
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
- 創建/etc/rc.local腳本文件,並寫入要運行的程序
#! /bin/bash
#### 這里在/usr/local里面創建文件夾是想看是否有執行的權限
#### 事實證明是有的
mkdir /usr/local/temp
echo "test auto bootstrap" > /usr/local/temp/1.log
#### exit 0 是14.04里面建議要寫的,18.04不知道需不需要先寫上了
exit 0
- 給rc.local執行的權限
sudo chmod +x /etc/rc.local
- 啟用服務
sudo systemctl enable rc-local
- 啟動服務
sudo systemctl start rc-local.service
sudo systemctl status rc-local.service
- 查看效果
可以看到/usr/local/temp文件夾被創建了,1.log文件也被創建了。 - 驗證重啟
sudo rm -rf /usr/local/temp
sudo reboot
依然有效即為成功....