CentOS 6下rc.local中的命令在启动后不能自动执行问题的排查方法

    在 CentOS 6及更早的版本中,/etc/rc.d/rc.local 文件是系统初始化及服务启动完成之后,最后执行的一个脚本。有时候我们会把一些命令放到其中,使得这些命令可以在启动后自动执行。这虽然不是一种推荐的处理方式,但是因为简单易行,还是经常被采用。
    最近遇到几台运行 CentOS 6.4 操作系统的服务器,都出现了 /etc/rc.d/rc.local 中包含的命令在开机后不能自动运行的问题。在检查过程中发现导致问题的原因可能有很多种。在解决了问题之后,总结一下规律,建议按照以下步骤查找原因:
1)检查 rc.local 中包含命令的权限;
2) 检查 rc.local 中包含命令的路径是否正确,建议最好使用绝对路径,尽量避免使用相对路径;
3)检查 rc.local 文件的权限;
4)检查一下启动后默认的运行级别,例如:使用 runlevel 命令,得知运行级别是3就到 /etc/rc.d/rc3.d 目录中,检查一下 S99local 文件是否是指向 ../rc.local (即/etc/rc.local) 的软链接,如果不是就重建软链接文件 S99local ;
5)检查 /etc/rc.local 是否是指向 /etc/rc.d/rc.local 的软链接,如果不是,就重建软链接文件 /etc/rc.local ;
6)使用命令 source /etc/rc.local,看看此时 rc.local 中包含的命令能否顺利执行。
    通过以上步骤的检查,一般可能导致问题的源头都能被找到。

猜你喜欢

转载自blog.csdn.net/henter/article/details/79033830
今日推荐