当rc.local脚本停止防火墙时,zookeeper自动启动操作失败

iam在centos 7上使用hadoop apache 2.7.1,我的集群是ha集群,iam使用zookeeper quorum进行自动故障转移

但我想要自动化zookeeper启动过程,并在shell脚本中,我们必须先停止防火墙,以便让其他法定人员元素能够联系当前的zookeeper元素

iam在/etc/rc.d/rc.local中写入以下脚本

主机名jn1

systemctl停止firewalld

ZOOKEEPER ='/ usr / local / zookeeper-3.4.9 /'source /etc/rc.d/init.d/functions

源$ ZOOKEEPER / bin / zkEnv.sh

守护进程 – 用户root $ ZOOKEEPER / bin / zkServer.sh启动

但我面临的问题是,当我发布命令

systemctl在rc.local中停止firewalld

并在主机启动后发出zkServer状态iam得到错误

默认情况下启用ZooKeeper JMX使用config:/usr/local/zookeeper-3.4.9/bin/../conf/zoo.cfg联系服务时出错。 它可能没有运行。

但是如果我执行了一个脚本,我的意思是我的主机启动后正常的过程相同的命令

systemctl status firewalld

zkServer启动

没有问题,zkstatus显示其模式

我已经注意到在主机启动之后执行rc.local脚本和正常命令之间的zookeeper.out日志的区别

与正常命令执行时读取服务器环境不同

在rc.local脚本中停止服务器环境的防火墙的效果以及如何处理?

我有关于停止和重新启动防火墙情况的abig头痛

我发现在rc.local停止防火墙是一个假的停止

所以,因为不想防火墙工作,我最终以下面的解决scheme

systemctl禁用firewalld

https://www.rootusers.com/how-to-disable-the-firewall-in-centos-7-linux/

所以防火墙在任何启动时都不会再工作