You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 14:48:16