Ubuntu 自启动服务的方法
方法一: /etc/rc.local
rc.local 是 Ubuntu的开机自启动配置文件
执行的时机:是在系统所有服务启动后,开始执行rc.local 中的配置
在Ubuntu 20.04 中,默认的 rc.local 服务并没有启用,因此需要手动配置:
## 启动服务
systemctl start rc-local.service
## 重启服务
systemctl restart rc-local
## 停止服务
systemctl stop rc-local.service
## 服务使能 --> 开机依旧生效
systemctl enable rc-local.service
## 禁用服务 --> 再次开机时会失效
systemctl disable rc-local.service
在 /etc/ 目录下创建 rc.local 文件:
vi /etc/rc.local
# 注意需要 再首行添加 #!/bin/bash 因为这个是个 shell 脚本
# 添加执行权限
chmod 777 /etc/rc.local
注意
- 不是守护方式,无法重试。
- 与用户无关,都是root权限
参考方法: https://blog.youkuaiyun.com/qz652219228/article/details/125107694
方法二: 使用 systemd (推荐)
1. 在 /etc/systemd/system 目录里增加需要自启动的服务, 如: JNS.service
sudo vi /etc/systemd/system/JNS.service
# 添加以下内容:
[Unit]
Description=JNS service, mount folder and create log folder
After=network.target
[Service]
ExecStart=/etc/systemd/system/JNS.sh
Restart=always
[Install]
WantedBy=default.target
2. 在 /etc/systemd/system 目录里增加上述 .service 文件里 ExecStart 标注的 文件
sudo vi /etc/systemd/system/JNS.sh
# 添加以下内容:
#!/bin/bash
if [ ! -d "/tmp/JNS" ];then
echo "create folder: /tmp/JNS"
mkdir /tmp/JNS
fi
if [ ! -d "/home/keye/KYWorkspace" ];then
echo "create folder: /home/keye/KYWorkspace"
mkdir /home/keye/KYWorkspace
fi
while test -z "$(df | grep KYWorkspace)"; do
echo "try mount KYWorkspace"
mount.cifs //192.168.80.1/KYWorkspace /home/keye/KYWorkspace -o username=keye,password=keye,uid="$(id -u keye)"
sleep 10
done
3. 执行以下命令
chmod 777 /etc/systemd/system/JNS.service
chmod 777 /etc/systemd/system/JNS.sh
systemctl daemon-reload
systemctl enable JNS.service
systemctl start JNS.service