跳转至

CentOS 7 开机运行脚本


2016-07-26 by dongnan

问题描述

某台服务器操作系统为 CentOS 7.2/etc/rc.local 添加一个开机启动防火墙shell脚本,但是重启系统后这个脚本并没有执行。

# 执行命令
tail -n1 /etc/rc.local
/root/sh/iptables.sh

问题原因

使用 google 大法,得知 CentOS 7 更新了 rc.local 文件使用策略:

  • 这个文件是为了兼容性的问题而添加的。
  • 强烈建议创建自己的 systemd服务或 udev规则来在开机时运行脚本而不是使用这个文件。
  • 与以前的版本引导时的并行执行相比较,这个脚本将不会在其他所有的服务后执行。
  • 请记住必须执行 chmod +x /etc/rc.d/rc.local 来确保确保这个脚本有执行权限。

检查权限果然没有可执行权限

ll /etc/rc.d/rc.local
-rw-r--r-- 1 root root 505 Jun 17 01:01 /etc/rc.d/rc.local

解决方法

按照提示赋予 rc.local 可执行权限:

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

小结

如上所述,rc.local这个文件属于过度性质,未来可能会删除,推荐使用自定义 systemd服务。

回到页面顶部