如果你的firewalld失败原因是这样:
Active:failed
Process:31558 ExecStart=/usr/sbin/firwalld -nofork --nopid $FIREWALLD ARGS
那么就很可能是python的问题。
我之前升级系统的python到了3.8.8版本,原有的python被我修改成2.7.3,而/usr/sbin/firewalld是个python脚本,它开头处有:
#!/usr/bin/python -Es
由于我升级了python,它去访问3.8.8版本了,这不就错了吗!
于是我敲入vi /usr/sbin/firewalld
将原有的
#!/usr/bin/python -Es
改成
#!/usr/bin/python2.7.3 -Es
然后保存退出,再执行就对了。
如果systemctl也出问题,还是一样的改法,因为它于是个python脚本。
这个事例提醒我升级软件时旧的千万别rm -rf ,否则就惨了。
END