centos7.x rc.local不执行问题修复
缘起
由于折腾的一些库必须是centos7上才有,所以就折腾这迁移到centos7咯,其他常用的软件,比如mysql、nginx都使用service的方式设置开机启动咯,然后剩余自己定义的脚本放在/etc/rc.local下,然后发现死活这里的脚本不执行。
这怎么能忍,因为这里放的可是提子呀,这个不能用那就得每次vps重启后手工拉起咯!!
你还别说,我用手工拉起的方法,居然忍着用了小半年你敢信?
间中,各种折腾,开启-x日志选项,都没有解决这个问题
直到某个折腾的晚上,灵光一现,发现了centos7下边rc.local的注释。。。。。。。
不禁感叹,程序猿是一个有时候死都不愿意写文档,有时候又非常想要有文档,有时候有文档、注释又不看的神奇生物!!!
折腾经过
各种折腾调试不管用就不说了,直到灵光一现我看到了rc.local的注释,如下
# cat /etc/rc.local #!/bin/bash -x # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES # # It is highly advisable to create own systemd services or udev rules # to run scripts during boot instead of using this file. # # In contrast to previous versions due to parallel execution during boot # this script will NOT be run after all other services. # # Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure # that this script will be executed during boot.
里边已经说得很清楚了,在centos7里边,不建议使用rc.local脚本来增加开启启动项目,建议使用Service来做,这。。。。。
这和centos6是不一样的,centos6里边这里是可以执行的。
这里的注释说的很清楚了,需要你把/etc/rc.d/rc.local 增加可执行权限
立马加上x属性,reboot,一切如你所愿!!
终于可以不用蛋疼的在不能上去网时手动去拉起提子了。。。。
总结
这类系统升级后导致一些变化而不能正常运行的情况,很多时候不是执行不对,而是,TMD根本就没有执行,呵呵呵呵呵呵呵呵!!!
这让我想起来之前发现nginx log不自动按天切割的问题,最后查了半天,发现特么的在centos7系统里,默认情况下,这个crontab服务就没有开机自启啊魂淡。。。。。。
解决类似的问题,真是蛋疼,因为一上来定性思维的去查为什么执行不对,其实可以想一想到底有没有执行先。。。。。
发表评论