启动说明:
Ubuntu 16.10 和 Debian 9(不包括)之前的版本使用的是update-rc.d以及rc.local等方法设置开机启动,Ubuntu 16.10 和 Debian 9(包括)之后的版本,开始不再使用initd管理系统,改用systemd;以下设置方法如果是Debian系统并且以root用户登录,则命令前无需添加sudo。
设置方法:
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
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
以上启动文件内容简介
[Unit] 段: 启动顺序与依赖关系
[Service] 段: 启动行为,如何启动,启动类型
[Install] 段: 定义如何安装这个配置文件,即怎样做到开机启动
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 文件是否存在就知道开机脚本是否生效了。