启动防火墙firewalld失败的原因很多,记录一下自己遇到的错误和解决方法:
如果运行systemctl start firewalld 报错,可以运行systemcel status firewalld
1、 Process: 18701 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=1/FAILURE)
出现以上错误,大多数是由于系统里面安装的python版本原因。/usr/sbin/firewalld文件头部的python版本和安装的python版本不一致
解决方法: 查看系统当前安装的python版本号: python --version
例如安装的Python版本是2.7, 查看/usr/sbin/firewalld头部 。 vi /usr/sbin/firewalld
头部内容默认是 “#!/usr/bin/python” ,需要修改为: “#!/usr/bin/python/python2.7”
修改完成后,重新启动firewalld
2、使用firewall-cmd 命令是,提示错误:Traceback (most recent call last): File "/usr/bin/firewall-cmd", line 24, in <module>
from gi.repository import GObject
ImportError: No module named repository
解决方法: 首先,修改/usr/bin/firewall-cmd文件头部, 默认是 “#!/usr/bin/python” ,需要修改为: “#!/usr/bin/python/python2.7”
如果按照第一步修改完以后,还是提示该错误,说明python2.7中缺少模块,需要执行以下命令进行安装模块
"pip install gi"