正常步骤:
-
-
- 1.编写xx_start.sh文件,然后运行以下命令测试该脚本
- 2.在/etc/rc.local末尾添加该脚本的绝对路径
- 3.给/etc/rc.d/rc.local文件以及xx_start.sh添加可执行权限
- 4.重启测试
-
- 非常规解决方案:
1.编写xx_start.sh文件,然后运行以下命令测试该脚本
sh xx_start.sh
若通过ps -ef|grep检查发现脚本内的服务正常启动则脚本基本无大问题。
2.在/etc/rc.local末尾添加该脚本的绝对路径
(> /dev/null表示将脚本的输出指向一个空文件)
vim /etc/rc.local
3.给/etc/rc.d/rc.local文件以及xx_start.sh添加可执行权限
以上添加完保存退出之后,/etc/rc.local的文本内容会同步复制到/etc/rc.d/rc.local。
确切地说,/etc/rc.local是一个软链接,指向的是/etc/rc.d/rc.local文件,实际上开机执行的应该是/etc/rc.d/rc.local文件。
chmod +X /etc/rc.d/rc.local
chmod +X [xx_start.sh的绝对路径]
4.重启测试
reboot
一般情况下重启则成功启动了,以上方法适用80%的情况。
非常规解决方案:
不知道是由于什么原因,我写的脚本可以手动运行,却无法用以上方法来解决。查找了好久的文章,找到以下代替解决方案:
crontab -e
输入上面命令会弹出一个编辑框,在文本末尾添加之前添加以下自启动命令,例如:
@reboot /root/xx_start.sh
#@reboot代表重启reboot后会自动执行,xx_start.sh是你编写的服务启动脚本
如图:
查看你写入的crontab计划任务
crontab -l
重启检查服务
reboot
成功!