前言
Ubuntu 18 不再使用initd管理系统,而是使用systemd;我们使用 update-rc.d,可以添加和删除服务,并将它们添加到Ubuntu / Debian启动脚本中,实现开启自启动效果。
实现过程:
1)新建个脚本文件 new_service.sh
#!/bin/bash
# command content
exit 0
2)设置权限
sudo chmod +x new_service.sh
3)把脚本放置到启动目录下
sudo mv new_service.sh /etc/init.d/
4、将脚本添加到开机启动脚本
执行如下指令,在这里90表明一个优先级,越高表示执行的越晚 (优先级范围:0~90)
cd /etc/init.d/
sudo update-rc.d new_service.sh defaults 90
然后重启电脑;
5)查看全部服务列表
sudo service --status-all
这时应该能看到新加开机启动脚本(new_service.sh)的名字在列表中;说明开机时会启动这个sh脚本的。
附加:看到列表中,启动前面会可能出现以下三种状态de
- [+] –具有此标志的服务当前正在运行。
- [–] –具有此标志的服务当前未运行。
- [?] –没有 状态开关的服务。
6)服务的启动停止状态
xxx为第5步查询得来的启动服务(脚本)名字
sudo service xxx status
sudo service xxx start
sudo service xxx stop
sudo service xxx restart
其他
移除开机启动脚本
sudo update-rc.d -f new_service.sh remove
update-rc.d的详细参数
使用update-rc.d命令需要指定脚本名称和一些参数,它的格式看起来是这样的(需要在 root 权限下):
update-rc.d [-n] [-f] <basename> remove
update-rc.d [-n] <basename> defaults
update-rc.d [-n] <basename> disable|enable [S|2|3|4|5]
update-rc.d <basename> start|stop <NN> <runlevels>
参数解析:
-n: not really
-f: force
disable|enable:代表脚本还在/etc/init.d中,并设置当前状态是手动启动还是自动启动。
start|stop:代表脚本还在/etc/init.d中,开机,并设置当前状态是开始运行还是停止运行。(启用后可配置开始运行与否)
NN:是一个决定启动顺序的两位数字值。(例如90大于80,因此80对应的脚本先启动或先停止)
runlevels:则指定了运行级别。
希望对你有帮助。
如果有不对的,欢迎指正。