转载自: https://blog.csdn.net/qq570437459/article/details/87094870; 做了部分修改
ubuntu18.04 压根就没有 rc.local, 而且很多发行版都推荐使用 systemd 而不是 initd 了.
1. 准备好你的 sh 脚本文件
内容略过, 就假设路径是 / usr/local/my/my.sh 吧. 别忘了 chmod +x.
2. 创建一个 service 文件
进入 / etc/systemd/system/, 创建一个 my.service 文件, 内容如下:
[Unit]
Description=just for test 这里填简介
After=BBB.service XXX.service AAA.service 这里填上你这个脚本所需要的前置 service, 都在 / etc/systemd/system / 下 [这一项可以不写]
[Service]
ExecStart=/usr/local/my/my.sh 这里填 sh 文件路径, 比如这里运行了这个 my.sh, 后面也可以跟运行 my.sh 的参数, 比如 -D -I[这里也可以直接写命令, 注意最好用 ""括起来, 比如 ExecStart="source /etc/environment"]
- [Install]
- WantedBy=multi-user.target
3. 完事
使用以下命令使能这个服务开机启动:
# 重新加载配置文件
$ sudo systemctl daemon-reload service 文件改动后要重新 reload 一下 (类似刷新到缓存里)
$ sudo systemctl enable my.service 这句是为了设置开机启动
如果你想立刻启动这个服务从而执行里面的 sh 脚本, 就运行下面这句:
# 重启相关服务
$ sudo systemctl start my.service 启动服务
关于 service 文件里的一些选项, 在
http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-part-two.html
来源: http://www.bubuko.com/infodetail-3519847.html