起因

Ubuntu-16.10(不包括)之前的版本使用的是update-rc.d以及rc.local等方法设置开机启动,Ubuntu-16.10(包括)之后的版本,开始不再使用initd管理系统,改用systemd

设置方法

1、修改rc.local.service文件添加install

nano /lib/systemd/system/rc.local.service

检查是否有install段,如果没有在最后添加,添加后如下效果

[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no

[Install]
WantedBy=multi-user.target
Alias=rc-local.service

2、创建/etc/rc.local文件

Ubuntu-18.04 server 版默认是没有/etc/rc.local这个文件的,需要自己创建

sudo touch /etc/rc.local

然后把你需要启动脚本写入/etc/rc.local,我们不妨写一些测试的脚本放在里面,以便验证脚本是否生效.

echo "this just a test" > /usr/local/text.log

记得给加上执行权限:

sudo chmod +x /etc/rc.local

做完这一步,还需要最后一步 前面我们说systemd默认读取/etc/systemd/system下的配置文件, 所以还需要在/etc/systemd/system目录下创建软链接

ln -s /lib/systemd/system/rc.local.service /etc/systemd/system/

OK, 接下来,重启系统,然后看看 /usr/local/text.log 文件是否存在就知道开机脚本是否生效了。

本站由企鹅小屋强力驱动
Last modification:March 18, 2020
如果觉得我的文章对你有用,请随意赞赏