如何编写Python脚本:检测服务状态,Inactive时执行重启命令
修正后的Python脚本及说明
直接给你改好的脚本,同时实现「任一服务处于Inactive状态就执行重启命令」的逻辑:
#!/usr/bin/python import subprocess # 检测omkd服务状态 omkd_stat = subprocess.call(["systemctl", "is-active", "--quiet", "omkd"]) if omkd_stat == 0: print("omkd Active") else: print("omkd Inactive") # 检测opeventsd服务状态 opeventsd_stat = subprocess.call(["systemctl", "is-active", "--quiet", "opeventsd"]) if opeventsd_stat == 0: print("opeventsd Active") else: print("opeventsd Inactive") # 任一服务异常时执行重启命令 if omkd_stat != 0 or opeventsd_stat != 0: print("检测到服务异常,执行重启操作...") subprocess.run(['/bin/bash','/usr/local/omk/bin/checkomkdaemons.sh','restart'])
关键修正点:
- 原脚本里的
if 'stat == 0'是字符串判断,完全不符合逻辑,改成直接用变量做数值判断(omkd_stat == 0) - 分开存储两个服务的状态变量,避免后一个检测结果覆盖前一个
- 补上原脚本
else语句后缺失的冒号 - 新增核心判断逻辑:只要其中一个服务状态非0(即Inactive),就触发重启命令
- 增加执行提示,方便排查操作记录
内容的提问来源于stack exchange,提问作者Calarian
相关产品推荐
相关产品推荐

