最近重新配置家里的NAS下载机时发现在CentOS7.8.2003操作系统下将服务启动命令写到rc.local后没有生效。 后来经过一番查阅发现从CentOS7.0开始,/etc/rc.d/rc.local文件的初始权限变成了644,并且rc-local.service服务的状态是disabled状态。 怎么办呢? 很简单!为/etc/rc.d/rc.local文件赋权为744:

初始状态如下:

# ls -l /etc/rc.d/rc/local total 4 -rw-r--r--. 1 root root 834 Oct 31 09:25 rc.local

赋权操作:

# chmod +x /etc/rc.d/rc.local

# ls -l /etc/rc.d/rc/local total 4 -rwxr--r--. 1 root root 834 Oct 31 09:25 rc.local

配置完毕!

另外还有一个比较重要的内容,就是在rc-local.service服务文件中,一定要添加[Install]段:
[Install] WantedBy=multi-user.target
否则,启动或者配置开机启动,都会提示错误。

当然有的时候也可能不成功,比如: /etc/rc.d/rc.local 文件中的内容格式不正确: 开头少了#!/bin/bash,也是执行不成功的,会提示你格式不对。

此外还可能是没有启动此项服务: # systemctl list-units --type=service #来查看一下所有的开启启动项目里面有没有这个rc-local这个服务。 # systemctl status rc-local.service #来查看一下当前是怎么个状态

然后:

#systemctl enable rc-local.service

#systemctl start rc-local.service #手工添加下开机启动或者手工起一下看报错信息。

另外:服务的启动文件是存放在了:/lib/systemd/system/ 目录下面,如果不记得这个服务的全称可以来这个目录下面看。

参考文章:http://www.51niux.com/?id=134 参考文章:https://www.cnblogs.com/xjz00/p/7729405.html