背景
项目中有遇到2个问题,
1: 使用java启动jar包
2: docker容器中自启动个服务。 这2个都要使用linux的开机自启动问题来解决。
配置自启动jar
在 Linux 中,可以使用 rc.local 文件设置自启动。rc.local 文件是在系统启动时自动执行的脚本文件,你可以在其中添加你需要自启动的命令或脚本。
1.首先书写自启动脚本
2.在rc.local中加入脚本
reboot测试
发现不管用。
解决问题1
:
可以看到rc.local是软连接,需要给/etc/rc.d/rc.local
赋予执行权限。
chmod +x /etc/rc.d/rc.local
解决问题2
:
再次运行还是不好用,后发现rc.local中的脚本必须写成 su -uname -c xx.sh
才可以。 上面的是我改完之后的。
再次reboot测试,终于可以了。
docker版本的自启动
本人的项目比较特殊,docker里面还要启动jar,docker是个大容器,特殊业务的原因。需要docker启动后启动容器内的。大体伪代码如下:
步骤一, sudo ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service 步骤二, sudo vi /etc/rc.local 输入一下内容 #!/bin/sh -e docker命令 sudo chmod +x /etc/rc.local sudo systemctl enable rc-local sudo systemctl start rc-local.service
完