解决rc.local失效的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决rc.local失效的问题相关的知识,希望对你有一定的参考价值。
参考技术A 有关linux下开机启动/etc/rc.local失效问题的解决办法,提供三种方式解决开机无法启动rc.local文件的问题,需要的朋友参考下。开机启动/etc/rc.local失效问题的解决方法
第一种情况:
当ubuntu 随机启动文件 /etc/rc.local 失效时请按如下修改
1、echo /etc/rc.local >>/etc/profile && source /etc/profile
注:当执行生效会看到效果(/etc/profile 文件在每个用户登录时会首先检查并执行)
2、reboot
注:重新启动检测是否生效
第二种情况:
echo /etc/rc.local >>~/.bash_profile && source /etc/profile
第三种情况:
在 /etc/rc3.d 目录下增加一个启动脚本,然后重启测试,内容如下:
cat /etc/rc3.d/StartDefautRoute.sh
#!/bin/bash
# hejun@163.com
route add default gateway 192.168.1.1 dev xenbr0
/etc/rc.local 中部分命令无法执行
解决linux系统重启rc.local中的指令不能生效问题
问题
在系统中/etc/rc.local设置自启动命令的时候,重启计算机,文件中的指令无法生效。
我这里编译安装了一个mongodb数据库的服务,然后修改了环境变量。写入到了.bash_profile 文件中,在shell中可以直接执行命令。
查看文件,文件的命令也是正确的
重启后指令无法生效
在解决问题之前,先要搞明白几个文件的作用
rc.local:
路径/etc/rc.d/rc.local或/etc/rc.local(软连接文件)
作用:用来开机自启动一些指定指令。
./.bash_profile:
路径:每个用户的根目录下的隐藏文件;
作用,用来设置该用户的环境变量,个人设置,设置之后只能自己使用。
/etc/profile:
路径:/etc/profile
作用:用来设置所有用户的环境变量,整体设置,设置完成后,所有用户皆可以使用
查找产生问题的原因
在linux中,一个文件出现了问题,首先应该查看文件的完整性和文件的权限。(个人习惯)。
(1)启动时,文件的执行先后。
我这里虽然修改了环境变量,但是,当计算机启动的时候,/etc/rc.local文件是先于/etc/profile或.bash_profile文件执行的。
所以,我这里得命令应该使用绝对路径的形式。(which mongod)。
(2)文件的执行权限。
查看软连接文件:
大多数人会在这里出现问题,因为这里显示的是拥有可执行权限的。这个文件的最终执行还是要到/etc/rc.d/rc.local文件那里执行,所以我们需要看的文件权限应该是源文件。
从这里可以看出,文件根本就没有执行权限,所以说当计算机开机的时候,这个文件也不会去执行。
解决办法
(1)执行命令的时候,将命令写为执行文件的绝对路径
(2)给/etc/rc.d/rc.local文件附加上可执行权限
chmod +x /etc/rc.d/rc.local
完成之后重启就可以了。
四、总结
这个问题的出现,一是因为/etc/rc.d/rc.local没有了执行权限(版本问题,看情况以后可能会舍去这个文件)。二是没有认清/etc/rc.d/rc.local文件和/etc/profile文件的执行先后。通过修改文件权限和指令执行方法即可解决。
其实在这里,细心的同学可能会注意到/etc/rc.d/rc/local文件中的注释
注释已经说得明白了。
要注意看注释,了解文件的作用、执行方式、本质。
以上是关于解决rc.local失效的问题的主要内容,如果未能解决你的问题,请参考以下文章
Ubuntu 解决 /etc/rc.local 开机启动问题
解决centos7 开机/etc/rc.local 不执行的问题