Reboot Task
最简单/etc/rc.local¶
默认是不开启的,文件/etc/rc.local
默认也不存在
开启/etc/rc.local功能¶
- ubuntu18.04不再使用initd管理系统,改用systemd
- systemd有rc-local的配置文件,只需链接到
/etc/systemd/system
目录下启动即可 ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service
使用/etc/rc.local功能¶
touch /etc/rc.local
chmod 755 /etc/rc.local
vim /etc/rc.local
eg. #!/bin/bash echo "test rc " > /var/test.log
crontab @reboot¶
initd 启动管理系统¶
- init.d目录包含许多系统各种服务的启动和停止脚本。它控制着所有从acpid到x11-common的各种事务。
- 注意:ubuntu18.04不再使用initd管理系统,改用systemd
编写脚本¶
/etc/init.d
目录下建立文件test
- 按照README编写脚本
- 赋予执行权限
sudo chmod +x /etc/init.d/test
设置脚本启动¶
方法一:使用update-rc.d 命令将脚本放到启动脚本中去(debian中可以使用更新的insserv):
注:其中数字95是脚本启动的顺序号,按照自己的需要相应修改即可。在你有多个启动脚本,而它们之间又有先后启动的依赖关系时你就知道这个数字的具体作用了。更多说明建议看man update-rc.d。
方法二:手动在rc*.d中建立软连接
rc*.d
,*代表启动级别,在不同启动级别启动, K开头的脚本文件代表运行级别加载时需要关闭的, S开头的代表相应级别启动时需要执行, 数字代表顺序
卸载启动脚本的方法:¶
手动调用脚本¶
systemd 服务管理系统¶
使用sudo systemctl enable xxx
systemctl is-enabled servicename.service #查询服务是否开机启动
systemctl enable *.service #开机运行服务
systemctl disable *.service #取消开机运行
systemctl start *.service #启动服务
systemctl stop *.service #停止服务
systemctl restart *.service #重启服务
systemctl reload *.service #重新加载服务配置文件
systemctl status *.service #查询服务运行状态
systemctl --failed #显示启动失败的服务
systemctl 开机启动原理¶
- Systemd 默认从目录
/etc/systemd/system/
读取配置文件。 - 但是,里面存放的大部分文件都是符号链接,指向目录
/usr/lib/systemd/system/
,真正的配置文件存放在那个目录。
systemctl enable
命令用于在上面两个目录之间,建立符号链接关系。
> $ sudo systemctl enable [email protected]
# 等同于
$ sudo ln -s '/usr/lib/systemd/system/[email protected]' '/etc/systemd/system/multi-user.target.wants/[email protected]'
>
systemctl enable
命令相当于激活开机启动。
* 与之对应的,systemctl disable
命令用于在两个目录之间,撤销符号链接关系,相当于撤销开机启动。
> $ sudo systemctl disable [email protected]
>
sshd.socket
。
* 如果省略,Systemd 默认后缀名为.service
,所以sshd
会被理解成sshd.service
。
把程序设置systemctl服务,并开机启动¶
进入目录/usr/lib/systemd/system
,修改webhook.service
[Unit]
Description=Webhook receiver for GitHub
[Service]
Type=simple
ExecStart=/usr/local/bin/webhook
[Install]
WantedBy=multi-user.target
Loaded: loaded (/etc/systemd/system/webhook.service; enabled;
这个enabled
就是开机启动的意思
需要进一步的研究学习¶
暂无
遇到的问题¶
暂无
开题缘由、总结、反思、吐槽~~¶
参考文献¶
https://neucrack.com/p/91