原理上是把运行的命令写到/etc/rc.local里面去运行。但是Ubuntu18默认是没有这个文件的,就需要我们自己配置下,以使用此方法。
1.检查系统文件/lib/systemd/system/rc-local.service,如果没有自己新建,文件内容如下:

[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

此外,另一系统文件内容同上,没有则新建,目录为/etc/systemd/system/rc-local.service
2.创建/etc/rc.local脚本文件,并写入想要运行的脚本程序。这里我们就进行一个测试,在usr目录下创建一个测试文件:

#! /bin/bash

mkdir /usr/local/temp
echo "test auto bootstrap" > /usr/local/temp/1.log

3.给rc.local可执行的权限:

sudo chmod +x /etc/rc.local

4.启用服务:

sudo systemctl enable rc-local
sudo systemctl start rc-local.service
sudo systemctl status rc-local.service

5.可以发现该目录已有此文件,删除该目录下的文件,重启以查看效果:

sudo rm -rf /usr/local/temp
sudo reboot

可以发现成功的创建了文件。
6.之后只需要将开机要以sudo运行的命令加到/etc/rc.local即可。
参考链接:https://blog.csdn.net/ylc0919/article/details/113482779