Ubuntu18 开机自动执行--脚本或命令(基于update-rc.d)

举报
一颗小树x 发表于 2020/05/28 22:50:36 2020/05/28
【摘要】 Ubuntu 18 不再使用initd管理系统,而是使用systemd;我们使用 update-rc.d,可以添加和删除服务,并将它们添加到Ubuntu / Debian启动脚本中,实现开启自启动效果。

前言

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:则指定了运行级别。


希望对你有帮助。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。