在 CentOS 7 中,我们可以很方便在 /etc/rc.local 中添加命令,使其在开机执行。但 Ubuntu 22.04 中默认没有这个文件。
为解决这个问题,我们可以自己创建一个简易的 rc-local 服务。
以下命令均在 root 权限执行
sudo -i # 切换到root执行
1. 添加 systemd 服务文件
vim /etc/systemd/system/rc-local.service
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
2. 创建脚本
vim /etc/rc.local
#!/bin/bash
# 开机后主动重启各服务
sleep 30
docker restart tr-mysql
docker restart tr-redis
docker restart tr-nginx
3. 配置权限和开机启动
# 添加权限
chmod 755 /etc/rc.local
# 将rc-local.service使能开机启动并启动
systemctl enable rc-local.service
systemctl start rc-local.service