centos7系统是建议我们建立自己的systemd服务器来启动脚本或是程序的,不过,自己很菜,对service文件的编辑不懂,里面需要配置的东东还挻多。一个service尚且如此,多了后就很可怕了,比如开机启动nginx,tomcat,redis,zookeeper等等,太麻烦了,远不及写几行命令来的得方便。所以人还是使用传统的方式,把脚本写进rc.local文件里。
centos7默认关闭了rc.local文件的执行权限,所以需要手动开启:
chmod u+x /etc/rc.d/rc.local
一般情况下,这样做就行了,但是有可能系统启动执行脚本时会有错误,所以最好在rc.local文件中加些日志,以便查看错误原因。如:
# 脚本开始处日志
exec 2> /tmp/rc.local.log # send stderr from rc.local to a log file
exec 1>&2 # send stdout to the same log file
echo "rc.local started" # show start of execution
set -x
# 这里是真正需要执行的脚本
touch /var/lock/subsys/local
/opt/script/startup.sh #这个脚本文件写好需要执行的代码
# 脚本执行完后也给个日志
echo "rc.local completed"
这样就把rc.local文件的运行情况写进/tmp/rc.local.log文件里了。我们最好再手动创建下这个日志文件:
touch /tmp/rc.local.log
最后,一切都完美了。
参考:https://www.certdepot.net/rhel7-configure-rc-local-service/