默认是不开启的,文件/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
touch /etc/rc.local
chmod 755 /etc/rc.local
vim /etc/rc.local
eg. #!/bin/bash echo "test rc " > /var/test.log
crontab -e
@reboot /home/user/test.sh
- 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):
$ cd /etc/init.d
$ sudo update-rc.d test defaults 95
注:其中数字95是脚本启动的顺序号,按照自己的需要相应修改即可。在你有多个启动脚本,而它们之间又有先后启动的依赖关系时你就知道这个数字的具体作用了。更多说明建议看man update-rc.d。
方法二:手动在rc*.d中建立软连接
$ ls -s test ../rc5.d/S95test
rc*.d
,*代表启动级别,在不同启动级别启动,
K开头的脚本文件代表运行级别加载时需要关闭的,
S开头的代表相应级别启动时需要执行,
数字代表顺序
$ cd /etc/init.d
$ sudo update-rc.d -f test remove
/etc/init.d/test start
/etc/init.d/test stop
/etc/init.d/test restart
使用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 #显示启动失败的服务
- 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]
>
* 配置文件的后缀名,就是该 Unit 的种类,比如
sshd.socket
。
* 如果省略,Systemd 默认后缀名为
.service
,所以
sshd
会被理解成
sshd.service
。
进入目录/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
这里有几个模块:
* [Unit] 区块:启动顺序与依赖关系。
* [Service] 区块:启动行为,如何启动,启动类型。
* [Install] 区块,定义如何安装这个配置文件,即怎样做到开机启动。
systemctl start nexus.service #启动服务
systemctl enable nexus.service #设置开机启动
Loaded: loaded (/etc/systemd/system/webhook.service; enabled;
这个
enabled
就是开机启动的意思
暂无
暂无
https://neucrack.com/p/91