{
 "generated_at": "2026-10-14 02:30:04",
 "generated_ts": 1791916204,
 "collector": "/opt/internal_board/collect_ledger.py · crontab */5",
 "how_to_read": {
  "在跑": "有铁证：syslog 里 cron 按点启动了它 / 服务 active+enabled / 日志新鲜",
  "反复重启": "起来-挂-再起来地循环（NRestarts 高）—— 看着是 active，其实没稳定干活",
  "滞后": "在，但明显比该有的慢",
  "没在干活": "排程还挂着 / 设了自启，但拿不出它在干活的证据",
  "脚本没了": "crontab 还留着，文件已经不在 → 到点必失败",
  "存疑": "拿不出证据（一律存疑，不替它说好话）",
  "已停用": "没在跑，也没设自启",
  "已被删": "备份或历史台账里有过，现在没了",
  "已迁移": "从 crontab 搬进了 systemd 常驻 —— 不是丢，是换了种活法"
 },
 "summary": {
  "total": 174,
  "alive": 118,
  "flapping": 0,
  "late": 0,
  "dead": 0,
  "missing": 0,
  "unknown": 2,
  "off": 13,
  "removed": 41,
  "moved": 0,
  "cron": 66,
  "svc": 67,
  "running_now": 69,
  "manual": 14,
  "pct_alive": 68,
  "trouble": 2
 },
 "items": [
  {
   "id": "cron:/opt/central/cost_monitor.py",
   "kind": "cron",
   "name": "central/cost_monitor.py",
   "label": "",
   "schedule": "10 */4 * * *",
   "interval_min": 240.0,
   "target": "/opt/central/cost_monitor.py",
   "target_exists": true,
   "log": "/var/log/cost_monitor.log",
   "running": false,
   "launch_ago_min": 140.0,
   "last_launch": "2026-10-14 00:10",
   "log_age_min": 139.9,
   "last": "2026-10-14 00:10",
   "state": "alive",
   "verdict": "在跑",
   "why": "cron 启动 2026-10-14 00:10（2.3 小时前） · 日志产出 2026-10-14 00:10（2.3 小时前），每 4 小时，节奏正常"
  },
  {
   "id": "cron:/opt/central/curate_news.py",
   "kind": "cron",
   "name": "central/curate_news.py",
   "label": "失败不覆盖旧版；写盘后 json.load 校验，最多重生成 2 次",
   "schedule": "20 3 * * *",
   "interval_min": 1440.0,
   "target": "/opt/central/curate_news.py",
   "target_exists": true,
   "log": "/var/log/curate_news.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1389.5,
   "last": "2026-10-13 03:20",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 03:20（23.2 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/central/dispatcher.py",
   "kind": "cron",
   "name": "central/dispatcher.py",
   "label": "central engine restored by lingxi 2026-09-04",
   "schedule": "*/2 * * * *",
   "interval_min": 2.0,
   "target": "/opt/central/dispatcher.py",
   "target_exists": true,
   "log": "/var/log/dispatcher.log",
   "running": true,
   "launch_ago_min": 0.0,
   "last_launch": "2026-10-14 02:30",
   "log_age_min": 0.0,
   "last": "2026-10-14 02:30",
   "state": "alive",
   "verdict": "在跑",
   "why": "cron 启动 2026-10-14 02:30（刚刚） · 日志产出 2026-10-14 02:30（刚刚），每 2 分钟，节奏正常 · 此刻有进程在跑"
  },
  {
   "id": "cron:/opt/central/foreign_intel_ingest.py",
   "kind": "cron",
   "name": "central/foreign_intel_ingest.py",
   "label": "上一步产物增量入库 foreign_intel",
   "schedule": "5 3 * * *",
   "interval_min": 1440.0,
   "target": "/opt/central/foreign_intel_ingest.py",
   "target_exists": true,
   "log": "/var/log/foreign_intel_ingest.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1405.0,
   "last": "2026-10-13 03:05",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 03:05（23.4 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/central/task_manager.py",
   "kind": "cron",
   "name": "central/task_manager.py",
   "label": "",
   "schedule": "*/10 * * * *",
   "interval_min": 10.0,
   "target": "/opt/central/task_manager.py",
   "target_exists": true,
   "log": "/var/log/task_manager.log",
   "running": true,
   "launch_ago_min": 0.0,
   "last_launch": "2026-10-14 02:30",
   "log_age_min": 0.0,
   "last": "2026-10-14 02:30",
   "state": "alive",
   "verdict": "在跑",
   "why": "cron 启动 2026-10-14 02:30（刚刚） · 日志产出 2026-10-14 02:30（刚刚），每 10 分钟，节奏正常 · 此刻有进程在跑"
  },
  {
   "id": "cron:/opt/devbot/projects/city_opportunity_map/nightly_refresh.py",
   "kind": "cron",
   "name": "city_opportunity_map/nightly_refresh.py",
   "label": "只做增量入库 + 漂移体检, 不覆盖存量分数 (原因见 nightly_refresh.py 头注释)",
   "schedule": "50 4 * * *",
   "interval_min": 1440.0,
   "target": "/opt/devbot/projects/city_opportunity_map/nightly_refresh.py",
   "target_exists": true,
   "log": "/var/log/city_opportunities_nightly.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1299.8,
   "last": "2026-10-13 04:50",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 04:50（21.7 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/citypages/cron_city_learn.sh",
   "kind": "cron",
   "name": "citypages/cron_city_learn.sh",
   "label": "city learner (lingxi 2026-09-18): SH/XI-AN/CHENGDU, 5 dims, daily 03:40 off-peak",
   "schedule": "40 3 * * *",
   "interval_min": 1440.0,
   "target": "/opt/citypages/cron_city_learn.sh",
   "target_exists": true,
   "log": "/opt/citypages/cron_learn.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1355.1,
   "last": "2026-10-13 03:55",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 03:55（22.6 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/devbot/projects/color_palette/learn_agent.py",
   "kind": "cron",
   "name": "color_palette/learn_agent.py",
   "label": "高级配色学习工 夜间批量(空闲窗口, 免费档glm)",
   "schedule": "35 3 */2 * *",
   "interval_min": 10080.0,
   "target": "/opt/devbot/projects/color_palette/learn_agent.py",
   "target_exists": true,
   "log": "/var/log/color_palette.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1342.0,
   "last": "2026-10-13 04:08",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 04:08（22.4 小时前），每 7 天，节奏正常"
  },
  {
   "id": "cron:/opt/devbot/projects/competition_math/learn_agent.py",
   "kind": "cron",
   "name": "competition_math/learn_agent.py",
   "label": "竞赛数学方法学习工 夜间批量(空闲窗口, 免费档glm)",
   "schedule": "45 2 */2 * *",
   "interval_min": 10080.0,
   "target": "/opt/devbot/projects/competition_math/learn_agent.py",
   "target_exists": true,
   "log": "/var/log/competition_math.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1405.9,
   "last": "2026-10-13 03:04",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 03:04（23.4 小时前），每 7 天，节奏正常"
  },
  {
   "id": "cron:/opt/devbot/projects/cost_sentinel/run_sentinel.py",
   "kind": "cron",
   "name": "cost_sentinel/run_sentinel.py",
   "label": "cost sentinel daily (谷时段前, 时刻由链链可改)",
   "schedule": "50 23 * * *",
   "interval_min": 1440.0,
   "target": "/opt/devbot/projects/cost_sentinel/run_sentinel.py",
   "target_exists": true,
   "log": "/var/log/cost_sentinel.log",
   "running": false,
   "launch_ago_min": 160.0,
   "last_launch": "2026-10-13 23:50",
   "log_age_min": 160.0,
   "last": "2026-10-13 23:50",
   "state": "alive",
   "verdict": "在跑",
   "why": "cron 启动 2026-10-13 23:50（2.7 小时前） · 日志产出 2026-10-13 23:50（2.7 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/home/fengyu/craft_commander/learn_snapshot.py",
   "kind": "cron",
   "name": "craft_commander/learn_snapshot.py",
   "label": "",
   "schedule": "55 23 * * *",
   "interval_min": 1440.0,
   "target": "/home/fengyu/craft_commander/learn_snapshot.py",
   "target_exists": true,
   "log": "/tmp/learn_snapshot.log",
   "running": false,
   "launch_ago_min": 155.0,
   "last_launch": "2026-10-13 23:55",
   "log_age_min": 155.1,
   "last": "2026-10-13 23:55",
   "state": "alive",
   "verdict": "在跑",
   "why": "cron 启动 2026-10-13 23:55（2.6 小时前） · 日志产出 2026-10-13 23:55（2.6 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/devbot/projects/foreign_search/foreign_search.py",
   "kind": "cron",
   "name": "foreign_search/foreign_search.py",
   "label": "海外 12 源原始抓取 (写 data_YYYYMMDD.json)",
   "schedule": "50 2 * * *",
   "interval_min": 1440.0,
   "target": "/opt/devbot/projects/foreign_search/foreign_search.py",
   "target_exists": true,
   "log": "/opt/devbot/projects/foreign_search/cron.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1419.5,
   "last": "2026-10-13 02:50",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 02:50（23.7 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/geo/ai_crawler_stats.py",
   "kind": "cron",
   "name": "geo/ai_crawler_stats.py",
   "label": "AI 爬虫体温计 (灵犀 2026-09-29): GEO 基线测量, 每天 00:35 夜间低谷; 只读 nginx 日志, 产出 /opt/geo/out/ai_crawler_stats.{json,md}",
   "schedule": "35 0 * * *",
   "interval_min": 1440.0,
   "target": "/opt/geo/ai_crawler_stats.py",
   "target_exists": true,
   "log": "/var/log/ai_crawler_stats.log",
   "running": false,
   "launch_ago_min": 115.0,
   "last_launch": "2026-10-14 00:35",
   "log_age_min": 115.0,
   "last": "2026-10-14 00:35",
   "state": "alive",
   "verdict": "在跑",
   "why": "cron 启动 2026-10-14 00:35（1.9 小时前） · 日志产出 2026-10-14 00:35（1.9 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/geo_gen/board_build.py",
   "kind": "cron",
   "name": "geo_gen/board_build.py",
   "label": "",
   "schedule": "30 8 * * *",
   "interval_min": 1440.0,
   "target": "/opt/geo_gen/board_build.py",
   "target_exists": true,
   "log": "/var/log/geo_board_build.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1079.8,
   "last": "2026-10-13 08:30",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 08:30（18.0 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/geo_gen/daily_gen.py",
   "kind": "cron",
   "name": "geo_gen/daily_gen.py",
   "label": "",
   "schedule": "40 3 * * *",
   "interval_min": 1440.0,
   "target": "/opt/geo_gen/daily_gen.py",
   "target_exists": true,
   "log": "/var/log/geo_gen.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1370.0,
   "last": "2026-10-13 03:40",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 03:40（22.8 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/heartbeat/check_heartbeat.py",
   "kind": "cron",
   "name": "heartbeat/check_heartbeat.py",
   "label": "",
   "schedule": "*/2 * * * *",
   "interval_min": 2.0,
   "target": "/opt/heartbeat/check_heartbeat.py",
   "target_exists": true,
   "log": "/var/log/heartbeat_check.log",
   "running": false,
   "launch_ago_min": 0.0,
   "last_launch": "2026-10-14 02:30",
   "log_age_min": 0.0,
   "last": "2026-10-14 02:30",
   "state": "alive",
   "verdict": "在跑",
   "why": "cron 启动 2026-10-14 02:30（刚刚） · 日志产出 2026-10-14 02:30（刚刚），每 2 分钟，节奏正常"
  },
  {
   "id": "cron:/opt/hotlist_eval/run_daily.py",
   "kind": "cron",
   "name": "hotlist_eval/run_daily.py",
   "label": "任务#57 热销榜每日: 简报→工种评估→看板→周汇总→仅高价值通知(08:25, intel_brief 08:30 之前)",
   "schedule": "25 8 * * *",
   "interval_min": 1440.0,
   "target": "/opt/hotlist_eval/run_daily.py",
   "target_exists": true,
   "log": "/var/log/hotlist_eval.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1085.0,
   "last": "2026-10-13 08:25",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 08:25（18.1 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/infonet_work/daily_learning_report.py",
   "kind": "cron",
   "name": "infonet_work/daily_learning_report.py",
   "label": "学习体检·每日一行（灵犀 2026-10-07）",
   "schedule": "40 6 * * *",
   "interval_min": 1440.0,
   "target": "/opt/infonet_work/daily_learning_report.py",
   "target_exists": true,
   "log": "/opt/infonet_work/learning_report.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1190.0,
   "last": "2026-10-13 06:40",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 06:40（19.8 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/intel_brief/gen_daily_intel.py",
   "kind": "cron",
   "name": "intel_brief/gen_daily_intel.py",
   "label": "情报研判官 #52: 每日9:10汇总各工种学习成果交叉验证出简报",
   "schedule": "30 8 * * *",
   "interval_min": 1440.0,
   "target": "/opt/intel_brief/gen_daily_intel.py",
   "target_exists": true,
   "log": "/var/log/intel_brief.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1080.0,
   "last": "2026-10-13 08:30",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 08:30（18.0 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/intel_channels/daily_digest.py",
   "kind": "cron",
   "name": "intel_channels/daily_digest.py",
   "label": "",
   "schedule": "20 6 * * *",
   "interval_min": 1440.0,
   "target": "/opt/intel_channels/daily_digest.py",
   "target_exists": true,
   "log": "/opt/intel_channels/logs/daily_digest.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1210.0,
   "last": "2026-10-13 06:20",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 06:20（20.2 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/intel_channels/demand_trend.py",
   "kind": "cron",
   "name": "intel_channels/demand_trend.py",
   "label": "",
   "schedule": "45 5 * * *",
   "interval_min": 1440.0,
   "target": "/opt/intel_channels/demand_trend.py",
   "target_exists": true,
   "log": "/opt/intel_channels/logs/demand_trend.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1245.0,
   "last": "2026-10-13 05:45",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 05:45（20.8 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/intel_channels/env.sh",
   "kind": "cron",
   "name": "intel_channels/env.sh",
   "label": "学习价值提炼 (灵犀 2026-10-04): 每日 06:20 低谷",
   "schedule": "20 6 * * *",
   "interval_min": 1440.0,
   "target": "/opt/intel_channels/env.sh",
   "target_exists": true,
   "log": "/opt/intel_channels/logs/learn_digest.log",
   "running": false,
   "launch_ago_min": 110.0,
   "last_launch": "2026-10-14 00:40",
   "log_age_min": 1209.4,
   "last": "2026-10-13 06:20",
   "state": "alive",
   "verdict": "在跑",
   "why": "cron 启动 2026-10-14 00:40（1.8 小时前） · 日志产出 2026-10-13 06:20（20.2 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/intel_channels/fetch_demand.py",
   "kind": "cron",
   "name": "intel_channels/fetch_demand.py",
   "label": "需求墙采集 (灵犀 2026-10-03): 每日 05:30 低谷，EN走SG/CN走百度+360",
   "schedule": "30 5 * * *",
   "interval_min": 1440.0,
   "target": "/opt/intel_channels/fetch_demand.py",
   "target_exists": true,
   "log": "/opt/intel_channels/logs/demand_fetch.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1253.5,
   "last": "2026-10-13 05:36",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 05:36（20.9 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/intel_channels/fetch_industry_demand.py",
   "kind": "cron",
   "name": "intel_channels/fetch_industry_demand.py",
   "label": "行业关注度(日频) 灵犀 2026-10-04: 02:00 起跑，约 2h，避开 05:30 需求采集抢 SG 限流",
   "schedule": "0 2 * * *",
   "interval_min": 1440.0,
   "target": "/opt/intel_channels/fetch_industry_demand.py",
   "target_exists": true,
   "log": "/opt/intel_channels/logs/industry_demand_cron.log",
   "running": false,
   "launch_ago_min": 30.0,
   "last_launch": "2026-10-14 02:00",
   "log_age_min": 0.2,
   "last": "2026-10-14 02:29",
   "state": "alive",
   "verdict": "在跑",
   "why": "cron 启动 2026-10-14 02:00（30 分钟前） · 日志产出 2026-10-14 02:29（刚刚），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/intel_channels/github_digest.py",
   "kind": "cron",
   "name": "intel_channels/github_digest.py",
   "label": "",
   "schedule": "10 6 * * *",
   "interval_min": 1440.0,
   "target": "/opt/intel_channels/github_digest.py",
   "target_exists": true,
   "log": "/opt/intel_channels/logs/github_digest.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1211.6,
   "last": "2026-10-13 06:18",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 06:18（20.2 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/intel_channels/industry_rank.py",
   "kind": "cron",
   "name": "intel_channels/industry_rank.py",
   "label": "高频行业榜（采集完成后出；未完成自动跳过）",
   "schedule": "*/20 0-5 * * *",
   "interval_min": 20.0,
   "target": "/opt/intel_channels/industry_rank.py",
   "target_exists": true,
   "log": "/opt/intel_channels/logs/industry_rank.log",
   "running": false,
   "launch_ago_min": 10.0,
   "last_launch": "2026-10-14 02:20",
   "log_age_min": 10.0,
   "last": "2026-10-14 02:20",
   "state": "alive",
   "verdict": "在跑",
   "why": "cron 启动 2026-10-14 02:20（10 分钟前） · 日志产出 2026-10-14 02:20（10 分钟前），每 20 分钟，节奏正常"
  },
  {
   "id": "cron:/opt/intel_channels/run_cron.sh",
   "kind": "cron",
   "name": "intel_channels/run_cron.sh",
   "label": "情报三频道采集 (灵犀 2026-09-30): GitHub/AI/变现, 每天 06:00 低谷窗",
   "schedule": "0 6 * * *",
   "interval_min": 1440.0,
   "target": "/opt/intel_channels/run_cron.sh",
   "target_exists": true,
   "log": "/var/log/intel_channels.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1224.8,
   "last": "2026-10-13 06:05",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 06:05（20.4 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/internal_board/bind_assets.py",
   "kind": "cron",
   "name": "internal_board/bind_assets.py",
   "label": "资产↔任务 归属绑定回填（灵犀 2026-09-27）: 每天 04:30 夜间低谷; 只写 owner_task_id, 从不碰 task_id/事件单",
   "schedule": "30 4 * * *",
   "interval_min": 1440.0,
   "target": "/opt/internal_board/bind_assets.py",
   "target_exists": true,
   "log": "/var/log/bind_assets.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1320.0,
   "last": "2026-10-13 04:30",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 04:30（22.0 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/internal_board/check_data_heartbeat.py",
   "kind": "cron",
   "name": "internal_board/check_data_heartbeat.py",
   "label": "数据心跳巡检 (灵犀 2026-09-22): 每 30 分钟对一次「被页面读的数据文件」的 mtime，超期写日志 + hub/heartbeat.json",
   "schedule": "*/30 * * * *",
   "interval_min": 30.0,
   "target": "/opt/internal_board/check_data_heartbeat.py",
   "target_exists": true,
   "log": "/var/log/check_data_heartbeat.log",
   "running": false,
   "launch_ago_min": 0.0,
   "last_launch": "2026-10-14 02:30",
   "log_age_min": 0.0,
   "last": "2026-10-14 02:30",
   "state": "alive",
   "verdict": "在跑",
   "why": "cron 启动 2026-10-14 02:30（刚刚） · 日志产出 2026-10-14 02:30（刚刚），每 30 分钟，节奏正常"
  },
  {
   "id": "cron:/opt/internal_board/collect.py",
   "kind": "cron",
   "name": "internal_board/collect.py",
   "label": "",
   "schedule": "*/5 * * * *",
   "interval_min": 5.0,
   "target": "/opt/internal_board/collect.py",
   "target_exists": true,
   "log": "/var/log/internal_board.log",
   "running": true,
   "launch_ago_min": 0.0,
   "last_launch": "2026-10-14 02:30",
   "log_age_min": 36860.0,
   "last": "2026-09-18 12:10",
   "state": "alive",
   "verdict": "在跑",
   "why": "cron 启动 2026-10-14 02:30（刚刚） · 日志产出 2026-09-18 12:10（25.6 天前），每 5 分钟，节奏正常 · 此刻有进程在跑"
  },
  {
   "id": "cron:/opt/internal_board/collect_assets.py",
   "kind": "cron",
   "name": "internal_board/collect_assets.py",
   "label": "",
   "schedule": "*/5 * * * *",
   "interval_min": 5.0,
   "target": "/opt/internal_board/collect_assets.py",
   "target_exists": true,
   "log": "/var/log/collect_assets.log",
   "running": true,
   "launch_ago_min": 0.0,
   "last_launch": "2026-10-14 02:30",
   "log_age_min": 4.9,
   "last": "2026-10-14 02:25",
   "state": "alive",
   "verdict": "在跑",
   "why": "cron 启动 2026-10-14 02:30（刚刚） · 日志产出 2026-10-14 02:25（4 分钟前），每 5 分钟，节奏正常 · 此刻有进程在跑"
  },
  {
   "id": "cron:/opt/internal_board/collect_catalog.py",
   "kind": "cron",
   "name": "internal_board/collect_catalog.py",
   "label": "清册定时重采 (灵犀 2026-09-19): 上游 inv_pages/inv_algo/inv_data + dl 打包 → catalog/*.json（人工策展层 _catalog_curation.json 兜底，策展字段不许丢）",
   "schedule": "15 3 * * *",
   "interval_min": 1440.0,
   "target": "/opt/internal_board/collect_catalog.py",
   "target_exists": true,
   "log": "/var/log/collect_catalog.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1392.0,
   "last": "2026-10-13 03:18",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 03:18（23.2 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/internal_board/collect_console.py",
   "kind": "cron",
   "name": "internal_board/collect_console.py",
   "label": "唯一指挥台 console（灵犀 2026-09-27）: task_board → data/console.json",
   "schedule": "*/5 * * * *",
   "interval_min": 5.0,
   "target": "/opt/internal_board/collect_console.py",
   "target_exists": true,
   "log": "/var/log/collect_console.log",
   "running": true,
   "launch_ago_min": 0.0,
   "last_launch": "2026-10-14 02:30",
   "log_age_min": 4.9,
   "last": "2026-10-14 02:25",
   "state": "alive",
   "verdict": "在跑",
   "why": "cron 启动 2026-10-14 02:30（刚刚） · 日志产出 2026-10-14 02:25（4 分钟前），每 5 分钟，节奏正常 · 此刻有进程在跑"
  },
  {
   "id": "cron:/opt/internal_board/collect_ledger.py",
   "kind": "cron",
   "name": "internal_board/collect_ledger.py",
   "label": "workflow ledger (lingxi 2026-09-18): which flows live / deleted / still running",
   "schedule": "*/5 * * * *",
   "interval_min": 5.0,
   "target": "/opt/internal_board/collect_ledger.py",
   "target_exists": true,
   "log": "/var/log/collect_ledger.log",
   "running": true,
   "launch_ago_min": 0.0,
   "last_launch": "2026-10-14 02:30",
   "log_age_min": 5.0,
   "last": "2026-10-14 02:25",
   "state": "alive",
   "verdict": "在跑",
   "why": "cron 启动 2026-10-14 02:30（刚刚） · 日志产出 2026-10-14 02:25（5 分钟前），每 5 分钟，节奏正常 · 此刻有进程在跑"
  },
  {
   "id": "cron:/opt/internal_board/collect_line.py",
   "kind": "cron",
   "name": "internal_board/collect_line.py",
   "label": "studio 生产线 + 台面数据 (lingxi 2026-09-19)",
   "schedule": "*/5 * * * *",
   "interval_min": 5.0,
   "target": "/opt/internal_board/collect_line.py",
   "target_exists": true,
   "log": "/var/log/collect_line.log",
   "running": false,
   "launch_ago_min": 0.0,
   "last_launch": "2026-10-14 02:30",
   "log_age_min": 0.0,
   "last": "2026-10-14 02:30",
   "state": "alive",
   "verdict": "在跑",
   "why": "cron 启动 2026-10-14 02:30（刚刚） · 日志产出 2026-10-14 02:30（刚刚），每 5 分钟，节奏正常"
  },
  {
   "id": "cron:/opt/internal_board/collect_parts.py",
   "kind": "cron",
   "name": "internal_board/collect_parts.py",
   "label": "",
   "schedule": "*/5 * * * *",
   "interval_min": 5.0,
   "target": "/opt/internal_board/collect_parts.py",
   "target_exists": true,
   "log": "/var/log/collect_parts.log",
   "running": true,
   "launch_ago_min": 0.0,
   "last_launch": "2026-10-14 02:30",
   "log_age_min": 4.6,
   "last": "2026-10-14 02:25",
   "state": "alive",
   "verdict": "在跑",
   "why": "cron 启动 2026-10-14 02:30（刚刚） · 日志产出 2026-10-14 02:25（4 分钟前），每 5 分钟，节奏正常 · 此刻有进程在跑"
  },
  {
   "id": "cron:/opt/internal_board/collect_sites.py",
   "kind": "cron",
   "name": "internal_board/collect_sites.py",
   "label": "site monitor (lingxi 2026-09-18): 国内站 + 国外站(ssh SG) 关键页面/服务/磁盘/访问日志",
   "schedule": "*/5 * * * *",
   "interval_min": 5.0,
   "target": "/opt/internal_board/collect_sites.py",
   "target_exists": true,
   "log": "/var/log/collect_sites.log",
   "running": true,
   "launch_ago_min": 0.0,
   "last_launch": "2026-10-14 02:30",
   "log_age_min": 4.7,
   "last": "2026-10-14 02:25",
   "state": "alive",
   "verdict": "在跑",
   "why": "cron 启动 2026-10-14 02:30（刚刚） · 日志产出 2026-10-14 02:25（4 分钟前），每 5 分钟，节奏正常 · 此刻有进程在跑"
  },
  {
   "id": "cron:/opt/internal_board/collect_sites_daily.py",
   "kind": "cron",
   "name": "internal_board/collect_sites_daily.py",
   "label": "sites daily (lingxi 2026-09-21): 国内站+国外站 按天访问汇总/任务/工作量 → data/sites_daily.json（只增不减）",
   "schedule": "*/30 * * * *",
   "interval_min": 30.0,
   "target": "/opt/internal_board/collect_sites_daily.py",
   "target_exists": true,
   "log": "/var/log/collect_sites_daily.log",
   "running": true,
   "launch_ago_min": 0.0,
   "last_launch": "2026-10-14 02:30",
   "log_age_min": 29.9,
   "last": "2026-10-14 02:00",
   "state": "alive",
   "verdict": "在跑",
   "why": "cron 启动 2026-10-14 02:30（刚刚） · 日志产出 2026-10-14 02:00（29 分钟前），每 30 分钟，节奏正常 · 此刻有进程在跑"
  },
  {
   "id": "cron:/opt/internal_board/collect_studio.py",
   "kind": "cron",
   "name": "internal_board/collect_studio.py",
   "label": "3. 工作室台面数据 internal/studio/data.json",
   "schedule": "30 5 * * *",
   "interval_min": 1440.0,
   "target": "/opt/internal_board/collect_studio.py",
   "target_exists": true,
   "log": "/var/log/collect_studio.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1260.0,
   "last": "2026-10-13 05:30",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 05:30（21.0 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/internal_board/gen_geo_coverage.py",
   "kind": "cron",
   "name": "internal_board/gen_geo_coverage.py",
   "label": "GEO 覆盖盘点重生成 (灵犀 2026-09-22): 手工产物接回定时，每天 04:20 夜间低谷重算 assets/axis/matrix",
   "schedule": "20 4 * * *",
   "interval_min": 1440.0,
   "target": "/opt/internal_board/gen_geo_coverage.py",
   "target_exists": true,
   "log": "/var/log/gen_geo_coverage.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1329.9,
   "last": "2026-10-13 04:20",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 04:20（22.2 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/internal_board/gen_progress.py",
   "kind": "cron",
   "name": "internal_board/gen_progress.py",
   "label": "四栏进度自动生成 (灵犀 2026-09-19): 人工层 progress_human.json + 机器采(workbench/task_board/line/sites) → progress.json",
   "schedule": "*/5 * * * *",
   "interval_min": 5.0,
   "target": "/opt/internal_board/gen_progress.py",
   "target_exists": true,
   "log": "/var/log/gen_progress.log",
   "running": true,
   "launch_ago_min": 0.0,
   "last_launch": "2026-10-14 02:30",
   "log_age_min": 0.0,
   "last": "2026-10-14 02:30",
   "state": "alive",
   "verdict": "在跑",
   "why": "cron 启动 2026-10-14 02:30（刚刚） · 日志产出 2026-10-14 02:30（刚刚），每 5 分钟，节奏正常 · 此刻有进程在跑"
  },
  {
   "id": "cron:/opt/internal_board/guard_model_config.py",
   "kind": "cron",
   "name": "internal_board/guard_model_config.py",
   "label": "主模型配置防回退守护（灵犀 2026-09-28）: 每天 06:15 检查, 发现被改回就改回+留痕+开单（任务 #51 根因对策）",
   "schedule": "15 6 * * *",
   "interval_min": 1440.0,
   "target": "/opt/internal_board/guard_model_config.py",
   "target_exists": true,
   "log": "/var/log/guard_model_config.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1215.1,
   "last": "2026-10-13 06:15",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 06:15（20.3 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/internal_board/heal_assets.py",
   "kind": "cron",
   "name": "internal_board/heal_assets.py",
   "label": "",
   "schedule": "*/10 * * * *",
   "interval_min": 10.0,
   "target": "/opt/internal_board/heal_assets.py",
   "target_exists": true,
   "log": "/var/log/heal_assets.log",
   "running": true,
   "launch_ago_min": 0.0,
   "last_launch": "2026-10-14 02:30",
   "log_age_min": 0.0,
   "last": "2026-10-14 02:30",
   "state": "alive",
   "verdict": "在跑",
   "why": "cron 启动 2026-10-14 02:30（刚刚） · 日志产出 2026-10-14 02:30（刚刚），每 10 分钟，节奏正常 · 此刻有进程在跑"
  },
  {
   "id": "cron:/opt/internal_board/sync_hub.py",
   "kind": "cron",
   "name": "internal_board/sync_hub.py",
   "label": "",
   "schedule": "*/30 * * * *",
   "interval_min": 30.0,
   "target": "/opt/internal_board/sync_hub.py",
   "target_exists": true,
   "log": "/var/log/sync_hub.log",
   "running": true,
   "launch_ago_min": 0.0,
   "last_launch": "2026-10-14 02:30",
   "log_age_min": 0.0,
   "last": "2026-10-14 02:30",
   "state": "alive",
   "verdict": "在跑",
   "why": "cron 启动 2026-10-14 02:30（刚刚） · 日志产出 2026-10-14 02:30（刚刚），每 30 分钟，节奏正常 · 此刻有进程在跑"
  },
  {
   "id": "cron:/opt/internal_board/sync_learn.py",
   "kind": "cron",
   "name": "internal_board/sync_learn.py",
   "label": "",
   "schedule": "*/30 * * * *",
   "interval_min": 30.0,
   "target": "/opt/internal_board/sync_learn.py",
   "target_exists": true,
   "log": "/var/log/sync_learn.log",
   "running": true,
   "launch_ago_min": 0.0,
   "last_launch": "2026-10-14 02:30",
   "log_age_min": 0.0,
   "last": "2026-10-14 02:30",
   "state": "alive",
   "verdict": "在跑",
   "why": "cron 启动 2026-10-14 02:30（刚刚） · 日志产出 2026-10-14 02:30（刚刚），每 30 分钟，节奏正常 · 此刻有进程在跑"
  },
  {
   "id": "cron:/opt/learner_tasks/feed_intel.py",
   "kind": "cron",
   "name": "learner_tasks/feed_intel.py",
   "label": "",
   "schedule": "40 6 * * *",
   "interval_min": 1440.0,
   "target": "/opt/learner_tasks/feed_intel.py",
   "target_exists": true,
   "log": "/var/log/learner_dispatch.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 109.8,
   "last": "2026-10-14 00:40",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-14 00:40（1.8 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/lifechain_standalone/ai_direction_eval.py",
   "kind": "cron",
   "name": "lifechain_standalone/ai_direction_eval.py",
   "label": "AI方向研判 #53: 每日9:40用生命链9步36项评估AI发展方向(#52情报后)",
   "schedule": "35 8 * * *",
   "interval_min": 1440.0,
   "target": "/opt/lifechain_standalone/ai_direction_eval.py",
   "target_exists": true,
   "log": "/var/log/ai_direction_eval.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1075.0,
   "last": "2026-10-13 08:35",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 08:35（17.9 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/lifechain_view/gen_lifechain.py",
   "kind": "cron",
   "name": "lifechain_view/gen_lifechain.py",
   "label": "1. 工作室侧生命链台账 (下游 build_zone.py 读它, 必须排在前)",
   "schedule": "10 5 * * *",
   "interval_min": 1440.0,
   "target": "/opt/lifechain_view/gen_lifechain.py",
   "target_exists": true,
   "log": "/var/log/gen_lifechain.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1280.0,
   "last": "2026-10-13 05:10",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 05:10（21.3 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/geo_assets/monitor/geo_daily_monitor.py",
   "kind": "cron",
   "name": "monitor/geo_daily_monitor.py",
   "label": "",
   "schedule": "20 8 * * *",
   "interval_min": 1440.0,
   "target": "/opt/geo_assets/monitor/geo_daily_monitor.py",
   "target_exists": true,
   "log": "/opt/geo_assets/monitor/daily/run.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1089.1,
   "last": "2026-10-13 08:20",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 08:20（18.2 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/devbot/projects/na_youth/learn_agent.py",
   "kind": "cron",
   "name": "na_youth/learn_agent.py",
   "label": "",
   "schedule": "50 3 */2 * *",
   "interval_min": 10080.0,
   "target": "/opt/devbot/projects/na_youth/learn_agent.py",
   "target_exists": true,
   "log": "/var/log/na_youth.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1302.2,
   "last": "2026-10-13 04:47",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 04:47（21.7 小时前），每 7 天，节奏正常"
  },
  {
   "id": "cron:/opt/chief_daily_guard.py",
   "kind": "cron",
   "name": "opt/chief_daily_guard.py",
   "label": "",
   "schedule": "40 7 * * *",
   "interval_min": 1440.0,
   "target": "/opt/chief_daily_guard.py",
   "target_exists": true,
   "log": "/var/log/chief_daily_guard.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1129.9,
   "last": "2026-10-13 07:40",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 07:40（18.8 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/gen_learn_stats.py",
   "kind": "cron",
   "name": "opt/gen_learn_stats.py",
   "label": "workflow live map (lingxi 2026-09-18): learn stats + progress collector",
   "schedule": "*/10 * * * *",
   "interval_min": 10.0,
   "target": "/opt/gen_learn_stats.py",
   "target_exists": true,
   "log": "/var/log/gen_learn_stats.log",
   "running": true,
   "launch_ago_min": 0.0,
   "last_launch": "2026-10-14 02:30",
   "log_age_min": 0.0,
   "last": "2026-10-14 02:30",
   "state": "alive",
   "verdict": "在跑",
   "why": "cron 启动 2026-10-14 02:30（刚刚） · 日志产出 2026-10-14 02:30（刚刚），每 10 分钟，节奏正常 · 此刻有进程在跑"
  },
  {
   "id": "cron:/opt/scripts/daily_cleanup.sh",
   "kind": "cron",
   "name": "scripts/daily_cleanup.sh",
   "label": "",
   "schedule": "30 3 * * *",
   "interval_min": 1440.0,
   "target": "/opt/scripts/daily_cleanup.sh",
   "target_exists": true,
   "log": "/var/log/daily_cleanup.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1380.0,
   "last": "2026-10-13 03:30",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 03:30（23.0 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/scripts/disk_alert.sh",
   "kind": "cron",
   "name": "scripts/disk_alert.sh",
   "label": "",
   "schedule": "0 */6 * * *",
   "interval_min": 360.0,
   "target": "/opt/scripts/disk_alert.sh",
   "target_exists": true,
   "log": "",
   "running": false,
   "launch_ago_min": 150.0,
   "last_launch": "2026-10-14 00:00",
   "log_age_min": null,
   "last": "2026-10-14 00:00",
   "state": "alive",
   "verdict": "在跑",
   "why": "cron 启动 2026-10-14 00:00（2.5 小时前），每 6 小时，节奏正常"
  },
  {
   "id": "cron:/opt/scripts/prewarm_learn.sh",
   "kind": "cron",
   "name": "scripts/prewarm_learn.sh",
   "label": "",
   "schedule": "30 7 * * *",
   "interval_min": 1440.0,
   "target": "/opt/scripts/prewarm_learn.sh",
   "target_exists": true,
   "log": "/var/log/prewarm_learn.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1140.0,
   "last": "2026-10-13 07:30",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 07:30（19.0 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/scripts/source_auditor.py",
   "kind": "cron",
   "name": "scripts/source_auditor.py",
   "label": "",
   "schedule": "0 4 * * *",
   "interval_min": 1440.0,
   "target": "/opt/scripts/source_auditor.py",
   "target_exists": true,
   "log": "/var/log/source_auditor_cron.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1350.0,
   "last": "2026-10-13 04:00",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 04:00（22.5 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/devbot/projects/space_design/learn_agent.py",
   "kind": "cron",
   "name": "space_design/learn_agent.py",
   "label": "空间设计学习工 夜间批量(空闲窗口, 免费档glm)",
   "schedule": "15 3 */2 * *",
   "interval_min": 10080.0,
   "target": "/opt/devbot/projects/space_design/learn_agent.py",
   "target_exists": true,
   "log": "/var/log/space_design.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1189.5,
   "last": "2026-10-13 06:40",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 06:40（19.8 小时前），每 7 天，节奏正常"
  },
  {
   "id": "cron:/root/viz-lifechain-bak/build_zone.py",
   "kind": "cron",
   "name": "viz-lifechain-bak/build_zone.py",
   "label": "2. 生命链可视化专区 /life-chain/data.js (只读 internal/lifechain/data.json)",
   "schedule": "20 5 * * *",
   "interval_min": 1440.0,
   "target": "/root/viz-lifechain-bak/build_zone.py",
   "target_exists": true,
   "log": "/var/log/viz_lifechain_gen.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1240.0,
   "last": "2026-10-13 05:50",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 05:50（20.7 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/root/viz-lifechain-bak/gen_model.py",
   "kind": "cron",
   "name": "viz-lifechain-bak/gen_model.py",
   "label": "4. ★行业曲线模型数据 /algo/_viz/industry-model.json (主人最在意: 每天填最新真实数据)",
   "schedule": "40 5 * * *",
   "interval_min": 1440.0,
   "target": "/root/viz-lifechain-bak/gen_model.py",
   "target_exists": true,
   "log": "/var/log/viz_lifechain_gen.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1240.0,
   "last": "2026-10-13 05:50",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 05:50（20.7 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/root/viz-lifechain-bak/gen_viz.py",
   "kind": "cron",
   "name": "viz-lifechain-bak/gen_viz.py",
   "label": "5. 说明书页图表数据 /algo/_viz/viz-data.js (19 页引用)",
   "schedule": "50 5 * * *",
   "interval_min": 1440.0,
   "target": "/root/viz-lifechain-bak/gen_viz.py",
   "target_exists": true,
   "log": "/var/log/viz_lifechain_gen.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1240.0,
   "last": "2026-10-13 05:50",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 05:50（20.7 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/devbot/projects/web_design_agent/learn_agent.py",
   "kind": "cron",
   "name": "web_design_agent/learn_agent.py",
   "label": "web design learning nightly batch (空闲窗口)",
   "schedule": "30 2 */2 * *",
   "interval_min": 10080.0,
   "target": "/opt/devbot/projects/web_design_agent/learn_agent.py",
   "target_exists": true,
   "log": "/var/log/web_design_agent.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1432.7,
   "last": "2026-10-13 02:37",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 02:37（23.9 小时前），每 7 天，节奏正常"
  },
  {
   "id": "cron:/opt/work_seo/ai_referrer_check.py",
   "kind": "cron",
   "name": "work_seo/ai_referrer_check.py",
   "label": "AI/搜索来源 每日监测（灵犀 2026-10-08）",
   "schedule": "10 7 * * *",
   "interval_min": 1440.0,
   "target": "/opt/work_seo/ai_referrer_check.py",
   "target_exists": true,
   "log": "/opt/work_seo/ai_referrer_cron.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1160.0,
   "last": "2026-10-13 07:10",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 07:10（19.3 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/work_seo/city_snapshot.py",
   "kind": "cron",
   "name": "work_seo/city_snapshot.py",
   "label": "",
   "schedule": "20 5 * * *",
   "interval_min": 1440.0,
   "target": "/opt/work_seo/city_snapshot.py",
   "target_exists": true,
   "log": "/opt/work_seo/city_snapshot.log",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": 1270.1,
   "last": "2026-10-13 05:20",
   "state": "alive",
   "verdict": "在跑",
   "why": "日志产出 2026-10-13 05:20（21.2 小时前），每 1 天，节奏正常"
  },
  {
   "id": "cron:/opt/workflow_map/gen_progress.py",
   "kind": "cron",
   "name": "workflow_map/gen_progress.py",
   "label": "",
   "schedule": "*/5 * * * *",
   "interval_min": 5.0,
   "target": "/opt/workflow_map/gen_progress.py",
   "target_exists": true,
   "log": "/var/log/wf_progress.log",
   "running": true,
   "launch_ago_min": 0.0,
   "last_launch": "2026-10-14 02:30",
   "log_age_min": 0.0,
   "last": "2026-10-14 02:30",
   "state": "alive",
   "verdict": "在跑",
   "why": "cron 启动 2026-10-14 02:30（刚刚） · 日志产出 2026-10-14 02:30（刚刚），每 5 分钟，节奏正常 · 此刻有进程在跑"
  },
  {
   "id": "cron:scp -q -o StrictHostKeyChecking=no /opt/geo_gen/daily_log.md",
   "kind": "cron",
   "name": "?",
   "label": "CN 记账本镜像给外网 KPI (灵犀 2026-10-11): 每天 08:55 推一份只读副本",
   "schedule": "55 8 * * *",
   "interval_min": 1440.0,
   "target": "",
   "target_exists": false,
   "log": "",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": null,
   "last": "",
   "state": "unknown",
   "verdict": "存疑",
   "why": "没有 syslog 启动记录、也找不到日志 → 拿不出「它还在干活」的证据"
  },
  {
   "id": "cron:/opt/devbot/projects/overseas_tracking/run_daily.sh",
   "kind": "cron",
   "name": "overseas_tracking/run_daily.sh",
   "label": "夜间低谷 02:40, 避开 02:30 web_design / 02:45 competition_math / 03:40 city GEO / 04:20 geo_coverage / 04:40 需求榜",
   "schedule": "40 2 * * *",
   "interval_min": 1440.0,
   "target": "/opt/devbot/projects/overseas_tracking/run_daily.sh",
   "target_exists": true,
   "log": "",
   "running": false,
   "launch_ago_min": null,
   "last_launch": "",
   "log_age_min": null,
   "last": "",
   "state": "unknown",
   "verdict": "存疑",
   "why": "没有 syslog 启动记录、也找不到日志 → 拿不出「它还在干活」的证据"
  },
  {
   "id": "svc:ad-planning.service",
   "kind": "svc",
   "name": "ad-planning",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/ad_planning/api/ad_api.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-02 19:34",
   "log_age_min": null,
   "pid": "975",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 975 · 2026-09-02 19:34 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:agent-dev.service",
   "kind": "svc",
   "name": "agent-dev",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/agent_dev/agent_dev.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-06 15:27",
   "log_age_min": null,
   "pid": "2223017",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 2223017 · 2026-09-06 15:27 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:algo-api-server.service",
   "kind": "svc",
   "name": "algo-api-server",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/algorithms/api_server.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-05 08:51",
   "log_age_min": null,
   "pid": "1470450",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 1470450 · 2026-09-05 08:51 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:algo-dispatcher.service",
   "kind": "svc",
   "name": "algo-dispatcher",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/algorithms/algo_dispatcher.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-22 07:29",
   "log_age_min": null,
   "pid": "3374384",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 3374384 · 2026-09-22 07:29 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:algogate.service",
   "kind": "svc",
   "name": "algogate",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/algogate/server.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-19 11:15",
   "log_age_min": null,
   "pid": "2303332",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 2303332 · 2026-09-19 11:15 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:anti-algorithm-engine.service",
   "kind": "svc",
   "name": "anti-algorithm-engine",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/algorithms/anti_algorithm_engine.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-12 15:52",
   "log_age_min": null,
   "pid": "949829",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 949829 · 2026-09-12 15:52 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:api-server-v2.service",
   "kind": "svc",
   "name": "api-server-v2",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/home/fengyu/commander_engine/api_server_v2.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-11 19:01",
   "log_age_min": null,
   "pid": "587359",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 587359 · 2026-09-11 19:01 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:capital-eval.service",
   "kind": "svc",
   "name": "capital-eval",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/algorithms/capital_eval_server.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-06 15:27",
   "log_age_min": null,
   "pid": "2222387",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 2222387 · 2026-09-06 15:27 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:capture-api.service",
   "kind": "svc",
   "name": "capture-api",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/algorithms/capture_api_server.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-02 20:15",
   "log_age_min": null,
   "pid": "21780",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 1,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 21780 · 2026-09-02 20:15 起 · 重启次数 1 → 真在跑，重启也在"
  },
  {
   "id": "svc:central-knowledge.service",
   "kind": "svc",
   "name": "central-knowledge",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/central_knowledge/server.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-11 19:12",
   "log_age_min": null,
   "pid": "592601",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 592601 · 2026-09-11 19:12 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:ces-uniagent.service",
   "kind": "svc",
   "name": "ces-uniagent",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "",
   "target_exists": true,
   "log": "",
   "last": "2026-09-02 19:34",
   "log_age_min": null,
   "pid": "809",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 809 · 2026-09-02 19:34 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:chain-commander.service",
   "kind": "svc",
   "name": "chain-commander",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/chain_commander/chain_commander_v7.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-02 19:34",
   "log_age_min": null,
   "pid": "991",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 991 · 2026-09-02 19:34 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:chain-service.service",
   "kind": "svc",
   "name": "chain-service",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/algorithms/chain_service.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-02 19:34",
   "log_age_min": null,
   "pid": "1243",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 1243 · 2026-09-02 19:34 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:curve-ai.service",
   "kind": "svc",
   "name": "curve-ai",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/algorithms/curve_ai_server.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-06 15:25",
   "log_age_min": null,
   "pid": "2221350",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 2221350 · 2026-09-06 15:25 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:curve-engine-v4.service",
   "kind": "svc",
   "name": "curve-engine-v4",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/curve_engine/app_v4.2.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-02 20:11",
   "log_age_min": null,
   "pid": "20103",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 20103 · 2026-09-02 20:11 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:fengyu-dashboard.service",
   "kind": "svc",
   "name": "fengyu-dashboard",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/dashboard/status_dashboard.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-12 15:53",
   "log_age_min": null,
   "pid": "952450",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 952450 · 2026-09-12 15:53 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:flow-board.service",
   "kind": "svc",
   "name": "flow-board",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/flow_board/server.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-02 19:34",
   "log_age_min": null,
   "pid": "1000",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 1000 · 2026-09-02 19:34 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:guide-server.service",
   "kind": "svc",
   "name": "guide-server",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/algorithms/guide_server.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-23 09:31",
   "log_age_min": null,
   "pid": "3704919",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 3704919 · 2026-09-23 09:31 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:health-chain-api.service",
   "kind": "svc",
   "name": "health-chain-api",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/algorithms/health_chain_api.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-23 18:22",
   "log_age_min": null,
   "pid": "3803330",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 3803330 · 2026-09-23 18:22 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:internal-bot.service",
   "kind": "svc",
   "name": "internal-bot",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/internal_bot/botd.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-20 07:12",
   "log_age_min": null,
   "pid": "2543461",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 2543461 · 2026-09-20 07:12 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:internal-console-api.service",
   "kind": "svc",
   "name": "internal-console-api",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/internal_console/console_api.py",
   "target_exists": true,
   "log": "",
   "last": "2026-10-03 18:00",
   "log_age_min": null,
   "pid": "2536600",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 2536600 · 2026-10-03 18:00 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:internal-idphoto.service",
   "kind": "svc",
   "name": "internal-idphoto",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/idphoto/app/server.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-20 09:07",
   "log_age_min": null,
   "pid": "2616940",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 2616940 · 2026-09-20 09:07 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:internal-photoswap.service",
   "kind": "svc",
   "name": "internal-photoswap",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/mnt/data/www/photo-swap/server/app.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-20 09:00",
   "log_age_min": null,
   "pid": "2611229",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 2611229 · 2026-09-20 09:00 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:internal-workbench.service",
   "kind": "svc",
   "name": "internal-workbench",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/internal_workbench/server.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-20 21:39",
   "log_age_min": null,
   "pid": "2915404",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 2915404 · 2026-09-20 21:39 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:knowledge-graph.service",
   "kind": "svc",
   "name": "knowledge-graph",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/knowledge_graph/knowledge_api.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-02 20:31",
   "log_age_min": null,
   "pid": "27311",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 27311 · 2026-09-02 20:31 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:learn-center.service",
   "kind": "svc",
   "name": "learn-center",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/learn_supervisor.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-19 10:45",
   "log_age_min": null,
   "pid": "2278595",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 2278595 · 2026-09-19 10:45 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:lifechain-engine.service",
   "kind": "svc",
   "name": "lifechain-engine",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/algorithms/lifechain_engine.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-02 20:45",
   "log_age_min": null,
   "pid": "30087",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 2,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 30087 · 2026-09-02 20:45 起 · 重启次数 2 → 真在跑，重启也在"
  },
  {
   "id": "svc:lifechain-standalone.service",
   "kind": "svc",
   "name": "lifechain-standalone",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/lifechain_standalone/server.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-02 19:34",
   "log_age_min": null,
   "pid": "1005",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 1005 · 2026-09-02 19:34 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:mem-upload.service",
   "kind": "svc",
   "name": "mem-upload",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/mem_upload/upload_server.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-24 12:25",
   "log_age_min": null,
   "pid": "4020281",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 4020281 · 2026-09-24 12:25 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:memory-api.service",
   "kind": "svc",
   "name": "memory-api",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/memory/memory_api.py",
   "target_exists": true,
   "log": "",
   "last": "2026-10-04 10:23",
   "log_age_min": null,
   "pid": "2739870",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 2739870 · 2026-10-04 10:23 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:memory-server.service",
   "kind": "svc",
   "name": "memory-server",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/algorithms/memory_server.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-02 20:27",
   "log_age_min": null,
   "pid": "25685",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 14,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 25685 · 2026-09-02 20:27 起 · 重启次数 14 → 真在跑，重启也在"
  },
  {
   "id": "svc:monitor.service",
   "kind": "svc",
   "name": "monitor",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/mnt/data/www/monitor/server.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-26 08:33",
   "log_age_min": null,
   "pid": "330605",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 330605 · 2026-09-26 08:33 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:node-system.service",
   "kind": "svc",
   "name": "node-system",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/home/fengyu/product_search_bot/node_system.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-02 19:40",
   "log_age_min": null,
   "pid": "5345",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 5345 · 2026-09-02 19:40 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:openclaw.service",
   "kind": "svc",
   "name": "openclaw",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "",
   "target_exists": true,
   "log": "",
   "last": "2026-09-11 19:12",
   "log_age_min": null,
   "pid": "592325",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 592325 · 2026-09-11 19:12 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:ops-manager.service",
   "kind": "svc",
   "name": "ops-manager",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/ops_manager.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-06 14:27",
   "log_age_min": null,
   "pid": "2196124",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 2196124 · 2026-09-06 14:27 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:promotion-engine.service",
   "kind": "svc",
   "name": "promotion-engine",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/algorithms/promotion_bot_server.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-02 19:34",
   "log_age_min": null,
   "pid": "1010",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 1010 · 2026-09-02 19:34 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:promotion-spirit.service",
   "kind": "svc",
   "name": "promotion-spirit",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/algorithms/promotion_spirit/promotion_spirit_server.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-02 19:34",
   "log_age_min": null,
   "pid": "1011",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 1011 · 2026-09-02 19:34 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:site-guardian.service",
   "kind": "svc",
   "name": "site-guardian",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/site_guardian.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-05 15:40",
   "log_age_min": null,
   "pid": "1641142",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 1641142 · 2026-09-05 15:40 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:skilltools.service",
   "kind": "svc",
   "name": "skilltools",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/skilltools/server.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-19 11:23",
   "log_age_min": null,
   "pid": "2312724",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 2312724 · 2026-09-19 11:23 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:spirit-api.service",
   "kind": "svc",
   "name": "spirit-api",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "spirit_frontend_api.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-02 20:31",
   "log_age_min": null,
   "pid": "27131",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 27131 · 2026-09-02 20:31 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:submit-server.service",
   "kind": "svc",
   "name": "submit-server",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/submit_server.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-20 20:11",
   "log_age_min": null,
   "pid": "2886129",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 2886129 · 2026-09-20 20:11 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:teacher-workbench.service",
   "kind": "svc",
   "name": "teacher-workbench",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/teacher_work/llm_proxy.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-16 08:38",
   "log_age_min": null,
   "pid": "1674127",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 1674127 · 2026-09-16 08:38 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:transcribe-api.service",
   "kind": "svc",
   "name": "transcribe-api",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/mnt/data/transcribe/api_server.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-02 20:15",
   "log_age_min": null,
   "pid": "21782",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 1,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 21782 · 2026-09-02 20:15 起 · 重启次数 1 → 真在跑，重启也在"
  },
  {
   "id": "svc:trend-analysis.service",
   "kind": "svc",
   "name": "trend-analysis",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/algorithms/trend_analysis_service.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-12 15:52",
   "log_age_min": null,
   "pid": "949861",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 949861 · 2026-09-12 15:52 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:trend-api.service",
   "kind": "svc",
   "name": "trend-api",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/algorithms/trend_api.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-12 15:53",
   "log_age_min": null,
   "pid": "952473",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 952473 · 2026-09-12 15:53 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:trend-eval-auth.service",
   "kind": "svc",
   "name": "trend-eval-auth",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/trend-eval-auth/server.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-02 19:34",
   "log_age_min": null,
   "pid": "1016",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 1016 · 2026-09-02 19:34 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:trend-evaluator.service",
   "kind": "svc",
   "name": "trend-evaluator",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/trend_evaluator/server.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-02 19:34",
   "log_age_min": null,
   "pid": "1017",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 1017 · 2026-09-02 19:34 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:uniagentd.service",
   "kind": "svc",
   "name": "uniagentd",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "",
   "target_exists": true,
   "log": "",
   "last": "2026-09-02 19:34",
   "log_age_min": null,
   "pid": "1019",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 1019 · 2026-09-02 19:34 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:wanlian-v3.service",
   "kind": "svc",
   "name": "wanlian-v3",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/algorithms/wanlian_v3_service.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-02 20:45",
   "log_age_min": null,
   "pid": "29932",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 29932 · 2026-09-02 20:45 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:webdeploy.service",
   "kind": "svc",
   "name": "webdeploy",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/webdeploy/server.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-02 19:34",
   "log_age_min": null,
   "pid": "1021",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 1021 · 2026-09-02 19:34 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:worker-bee.service",
   "kind": "svc",
   "name": "worker-bee",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/worker_bee/server.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-11 19:01",
   "log_age_min": null,
   "pid": "587361",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 587361 · 2026-09-11 19:01 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:workflow-status.service",
   "kind": "svc",
   "name": "workflow-status",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/workflow_map/api/status.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-06 14:27",
   "log_age_min": null,
   "pid": "2196122",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 2196122 · 2026-09-06 14:27 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:workflow-viz.service",
   "kind": "svc",
   "name": "workflow-viz",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/workflow_viz/server.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-02 19:34",
   "log_age_min": null,
   "pid": "1023",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 1023 · 2026-09-02 19:34 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:workspace-auth.service",
   "kind": "svc",
   "name": "workspace-auth",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/workspace_auth/server.py",
   "target_exists": true,
   "log": "",
   "last": "2026-09-02 19:34",
   "log_age_min": null,
   "pid": "1024",
   "active": "active",
   "sub": "running",
   "enabled": "enabled",
   "restarts": 0,
   "running": true,
   "state": "alive",
   "verdict": "在跑",
   "why": "active=active/running · UnitFileState=enabled · PID 1024 · 2026-09-02 19:34 起 → 真在跑，重启也在"
  },
  {
   "id": "svc:algo-spirit.service",
   "kind": "svc",
   "name": "algo-spirit",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/algorithms/spirit_frontend_api.py",
   "target_exists": true,
   "log": "",
   "last": "",
   "log_age_min": null,
   "pid": "0",
   "active": "inactive",
   "sub": "dead",
   "enabled": "disabled",
   "restarts": 0,
   "running": false,
   "state": "off",
   "verdict": "已停用",
   "why": "active=inactive/dead · UnitFileState=disabled · PID 0 · — 起 → 没在跑，也没设自启"
  },
  {
   "id": "svc:api-server.service",
   "kind": "svc",
   "name": "api-server",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/algorithms/api_server.py",
   "target_exists": true,
   "log": "",
   "last": "",
   "log_age_min": null,
   "pid": "0",
   "active": "inactive",
   "sub": "dead",
   "enabled": "disabled",
   "restarts": 0,
   "running": false,
   "state": "off",
   "verdict": "已停用",
   "why": "active=inactive/dead · UnitFileState=disabled · PID 0 · — 起 → 没在跑，也没设自启"
  },
  {
   "id": "svc:inspector-api.service",
   "kind": "svc",
   "name": "inspector-api",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/chain_commander/inspector_api_server.py",
   "target_exists": true,
   "log": "",
   "last": "",
   "log_age_min": null,
   "pid": "0",
   "active": "inactive",
   "sub": "dead",
   "enabled": "disabled",
   "restarts": 0,
   "running": false,
   "state": "off",
   "verdict": "已停用",
   "why": "active=inactive/dead · UnitFileState=disabled · PID 0 · — 起 → 没在跑，也没设自启"
  },
  {
   "id": "svc:knowledge-graph-api.service",
   "kind": "svc",
   "name": "knowledge-graph-api",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/knowledge_graph/knowledge_api.py",
   "target_exists": true,
   "log": "",
   "last": "",
   "log_age_min": null,
   "pid": "0",
   "active": "inactive",
   "sub": "dead",
   "enabled": "disabled",
   "restarts": 0,
   "running": false,
   "state": "off",
   "verdict": "已停用",
   "why": "active=inactive/dead · UnitFileState=disabled · PID 0 · — 起 → 没在跑，也没设自启"
  },
  {
   "id": "svc:matching-api.service",
   "kind": "svc",
   "name": "matching-api",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/xpay/matching_api.py",
   "target_exists": true,
   "log": "",
   "last": "",
   "log_age_min": null,
   "pid": "0",
   "active": "inactive",
   "sub": "dead",
   "enabled": "disabled",
   "restarts": 0,
   "running": false,
   "state": "off",
   "verdict": "已停用",
   "why": "active=inactive/dead · UnitFileState=disabled · PID 0 · — 起 → 没在跑，也没设自启"
  },
  {
   "id": "svc:opencode-scheduler-high.service",
   "kind": "svc",
   "name": "opencode-scheduler-high",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/home/fengyu/opencode_scheduler/scripts/scheduler_v2.py",
   "target_exists": true,
   "log": "",
   "last": "",
   "log_age_min": null,
   "pid": "0",
   "active": "inactive",
   "sub": "dead",
   "enabled": "disabled",
   "restarts": 0,
   "running": false,
   "state": "off",
   "verdict": "已停用",
   "why": "active=inactive/dead · UnitFileState=disabled · PID 0 · — 起 → 没在跑，也没设自启"
  },
  {
   "id": "svc:opencode-scheduler-low.service",
   "kind": "svc",
   "name": "opencode-scheduler-low",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/home/fengyu/opencode_scheduler/scripts/scheduler_v2.py",
   "target_exists": true,
   "log": "",
   "last": "",
   "log_age_min": null,
   "pid": "0",
   "active": "inactive",
   "sub": "dead",
   "enabled": "disabled",
   "restarts": 0,
   "running": false,
   "state": "off",
   "verdict": "已停用",
   "why": "active=inactive/dead · UnitFileState=disabled · PID 0 · — 起 → 没在跑，也没设自启"
  },
  {
   "id": "svc:opencode-scheduler-medium.service",
   "kind": "svc",
   "name": "opencode-scheduler-medium",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/home/fengyu/opencode_scheduler/scripts/scheduler_v2.py",
   "target_exists": true,
   "log": "",
   "last": "",
   "log_age_min": null,
   "pid": "0",
   "active": "inactive",
   "sub": "dead",
   "enabled": "disabled",
   "restarts": 0,
   "running": false,
   "state": "off",
   "verdict": "已停用",
   "why": "active=inactive/dead · UnitFileState=disabled · PID 0 · — 起 → 没在跑，也没设自启"
  },
  {
   "id": "svc:procurement-bot.service",
   "kind": "svc",
   "name": "procurement-bot",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/home/fengyu/product_search_bot/procurement_bot.py",
   "target_exists": true,
   "log": "",
   "last": "",
   "log_age_min": null,
   "pid": "0",
   "active": "inactive",
   "sub": "dead",
   "enabled": "disabled",
   "restarts": 0,
   "running": false,
   "state": "off",
   "verdict": "已停用",
   "why": "active=inactive/dead · UnitFileState=disabled · PID 0 · — 起 → 没在跑，也没设自启"
  },
  {
   "id": "svc:referral-api.service",
   "kind": "svc",
   "name": "referral-api",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/xpay/referral_system_api.py",
   "target_exists": true,
   "log": "",
   "last": "",
   "log_age_min": null,
   "pid": "0",
   "active": "inactive",
   "sub": "dead",
   "enabled": "disabled",
   "restarts": 0,
   "running": false,
   "state": "off",
   "verdict": "已停用",
   "why": "active=inactive/dead · UnitFileState=disabled · PID 0 · — 起 → 没在跑，也没设自启"
  },
  {
   "id": "svc:search-bot.service",
   "kind": "svc",
   "name": "search-bot",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/home/fengyu/product_search_bot/search_bot.py",
   "target_exists": true,
   "log": "",
   "last": "",
   "log_age_min": null,
   "pid": "0",
   "active": "inactive",
   "sub": "dead",
   "enabled": "disabled",
   "restarts": 0,
   "running": false,
   "state": "off",
   "verdict": "已停用",
   "why": "active=inactive/dead · UnitFileState=disabled · PID 0 · — 起 → 没在跑，也没设自启"
  },
  {
   "id": "svc:service-monitor.service",
   "kind": "svc",
   "name": "service-monitor",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/algorithms/service_monitor.py",
   "target_exists": true,
   "log": "",
   "last": "2026-10-14 02:30",
   "log_age_min": null,
   "pid": "0",
   "active": "inactive",
   "sub": "dead",
   "enabled": "static",
   "restarts": 0,
   "running": false,
   "state": "off",
   "verdict": "已停用",
   "why": "active=inactive/dead · UnitFileState=static · PID 0 · 2026-10-14 02:30 起 → 没在跑，也没设自启"
  },
  {
   "id": "svc:status_dashboard.service",
   "kind": "svc",
   "name": "status_dashboard",
   "label": "systemd 常驻服务",
   "schedule": "常驻",
   "interval_min": null,
   "target": "/opt/dashboard/status_dashboard.py",
   "target_exists": true,
   "log": "",
   "last": "",
   "log_age_min": null,
   "pid": "0",
   "active": "inactive",
   "sub": "dead",
   "enabled": "disabled",
   "restarts": 0,
   "running": false,
   "state": "off",
   "verdict": "已停用",
   "why": "active=inactive/dead · UnitFileState=disabled · PID 0 · — 起 → 没在跑，也没设自启"
  }
 ],
 "removed": [
  {
   "id": "cron:/opt/algorithms/engine_guardian.py",
   "kind": "cron",
   "name": "algorithms/engine_guardian.py",
   "label": "",
   "schedule": "*/5 * * * *",
   "target": "/opt/algorithms/engine_guardian.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/algorithms/geo_insight_importer.py",
   "kind": "cron",
   "name": "algorithms/geo_insight_importer.py",
   "label": "",
   "schedule": "35 21,20 * * *",
   "target": "/opt/algorithms/geo_insight_importer.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/algorithms/industry_insight_generator.py",
   "kind": "cron",
   "name": "algorithms/industry_insight_generator.py",
   "label": "",
   "schedule": "30 21,20 * * *",
   "target": "/opt/algorithms/industry_insight_generator.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/algorithms/zsxq_bot.py",
   "kind": "cron",
   "name": "algorithms/zsxq_bot.py",
   "label": "",
   "schedule": "*/10 * * * *",
   "target": "/opt/algorithms/zsxq_bot.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/audit/periodic_audit.py",
   "kind": "cron",
   "name": "audit/periodic_audit.py",
   "label": "",
   "schedule": "0 2 * * *",
   "target": "/opt/audit/periodic_audit.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/central/cost_guard.py",
   "kind": "cron",
   "name": "central/cost_guard.py",
   "label": "",
   "schedule": "15 */4 * * *",
   "target": "/opt/central/cost_guard.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/central/msg_gate.py",
   "kind": "cron",
   "name": "central/msg_gate.py",
   "label": "",
   "schedule": "*/10 * * * *",
   "target": "/opt/central/msg_gate.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/chain_commander/chain_commander.py",
   "kind": "cron",
   "name": "chain_commander/chain_commander.py",
   "label": "链指挥官 - 每2小时全量巡检",
   "schedule": "0 */2 * * *",
   "target": "/opt/chain_commander/chain_commander.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/daily_report/ai_keyword_reverse.py",
   "kind": "cron",
   "name": "daily_report/ai_keyword_reverse.py",
   "label": "",
   "schedule": "0 21,20 * * *",
   "target": "/opt/daily_report/ai_keyword_reverse.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/daily_report/auto_recovery.sh",
   "kind": "cron",
   "name": "daily_report/auto_recovery.sh",
   "label": "",
   "schedule": "*/5 * * * *",
   "target": "/opt/daily_report/auto_recovery.sh",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/daily_report/conversion_tracker.py",
   "kind": "cron",
   "name": "daily_report/conversion_tracker.py",
   "label": "",
   "schedule": "40 7 * * *",
   "target": "/opt/daily_report/conversion_tracker.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/daily_report/daily_server_auto.py",
   "kind": "cron",
   "name": "daily_report/daily_server_auto.py",
   "label": "",
   "schedule": "30 21 * * *",
   "target": "/opt/daily_report/daily_server_auto.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/daily_report/domestic_scan.py",
   "kind": "cron",
   "name": "daily_report/domestic_scan.py",
   "label": "",
   "schedule": "30 21 * * *",
   "target": "/opt/daily_report/domestic_scan.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/daily_report/gen_today_data.py",
   "kind": "cron",
   "name": "daily_report/gen_today_data.py",
   "label": "",
   "schedule": "35 7 * * *",
   "target": "/opt/daily_report/gen_today_data.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/daily_report/geo_auto_generator.py",
   "kind": "cron",
   "name": "daily_report/geo_auto_generator.py",
   "label": "",
   "schedule": "0 21 * * *",
   "target": "/opt/daily_report/geo_auto_generator.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/daily_report/keyword_capture.py",
   "kind": "cron",
   "name": "daily_report/keyword_capture.py",
   "label": "",
   "schedule": "0 23 * * *",
   "target": "/opt/daily_report/keyword_capture.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/daily_report/m_chain.py",
   "kind": "cron",
   "name": "daily_report/m_chain.py",
   "label": "",
   "schedule": "0 21 * * *",
   "target": "/opt/daily_report/m_chain.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/daily_report/money_flow_tracker.py",
   "kind": "cron",
   "name": "daily_report/money_flow_tracker.py",
   "label": "",
   "schedule": "45 7 * * *",
   "target": "/opt/daily_report/money_flow_tracker.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/daily_report/trend_analyzer.py",
   "kind": "cron",
   "name": "daily_report/trend_analyzer.py",
   "label": "",
   "schedule": "30 7 * * *",
   "target": "/opt/daily_report/trend_analyzer.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/daily_report/trend_chain_predict.py",
   "kind": "cron",
   "name": "daily_report/trend_chain_predict.py",
   "label": "",
   "schedule": "36 7 * * *",
   "target": "/opt/daily_report/trend_chain_predict.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/xpay/daily_search/daily_search.py",
   "kind": "cron",
   "name": "daily_search/daily_search.py",
   "label": "",
   "schedule": "0 22 * * *",
   "target": "/opt/xpay/daily_search/daily_search.py",
   "target_exists": false,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件本身也已经不在服务器上了"
  },
  {
   "id": "cron:/opt/xpay/digital_factory/factory.py",
   "kind": "cron",
   "name": "digital_factory/factory.py",
   "label": "",
   "schedule": "0 22 * * *",
   "target": "/opt/xpay/digital_factory/factory.py",
   "target_exists": false,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件本身也已经不在服务器上了"
  },
  {
   "id": "cron:/home/fengyu/run_crawler.sh",
   "kind": "cron",
   "name": "fengyu/run_crawler.sh",
   "label": "",
   "schedule": "0 */4 * * *",
   "target": "/home/fengyu/run_crawler.sh",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/xpay/info_capture/info_capture.py",
   "kind": "cron",
   "name": "info_capture/info_capture.py",
   "label": "",
   "schedule": "0 21,20 * * *",
   "target": "/opt/xpay/info_capture/info_capture.py",
   "target_exists": false,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件本身也已经不在服务器上了"
  },
  {
   "id": "cron:/opt/learn_scan/page_extract_v2.py",
   "kind": "cron",
   "name": "learn_scan/page_extract_v2.py",
   "label": "课练页提取（免费档·错峰）灵犀 2026-10-05",
   "schedule": "30 23 * * *",
   "target": "/opt/learn_scan/page_extract_v2.py",
   "target_exists": true,
   "backup": "crontab.bak_ls2_20261005_141135",
   "backup_at": "2026-10-05 14:11",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.bak_ls2_20261005_141135（2026-10-05 14:11）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/memory-chain/cleanup.py",
   "kind": "cron",
   "name": "memory-chain/cleanup.py",
   "label": "",
   "schedule": "30 3 * * *",
   "target": "/opt/memory-chain/cleanup.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/monitor/api_health_monitor.py",
   "kind": "cron",
   "name": "monitor/api_health_monitor.py",
   "label": "",
   "schedule": "*/30 * * * *",
   "target": "/opt/monitor/api_health_monitor.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/monitor/backup_monitor.py",
   "kind": "cron",
   "name": "monitor/backup_monitor.py",
   "label": "",
   "schedule": "0 6 * * *",
   "target": "/opt/monitor/backup_monitor.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/monitor/full_chain_check.py",
   "kind": "cron",
   "name": "monitor/full_chain_check.py",
   "label": "钱流追踪 (每天07:45, conversion_tracker 07:40之后)",
   "schedule": "*/30 * * * *",
   "target": "/opt/monitor/full_chain_check.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/monitor/resource_monitor.py",
   "kind": "cron",
   "name": "monitor/resource_monitor.py",
   "label": "",
   "schedule": "*/10 * * * *",
   "target": "/opt/monitor/resource_monitor.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/monitor/security_monitor.py",
   "kind": "cron",
   "name": "monitor/security_monitor.py",
   "label": "",
   "schedule": "*/30 * * * *",
   "target": "/opt/monitor/security_monitor.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/monitor/site_monitor.py",
   "kind": "cron",
   "name": "monitor/site_monitor.py",
   "label": "",
   "schedule": "*/10 * * * *",
   "target": "/opt/monitor/site_monitor.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/audit_v3_deep.py",
   "kind": "cron",
   "name": "opt/audit_v3_deep.py",
   "label": "深度盘点 v3 (每天凌晨2:05, 在periodic_audit之后)",
   "schedule": "5 2 * * *",
   "target": "/opt/audit_v3_deep.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/central_ingest.py",
   "kind": "cron",
   "name": "opt/central_ingest.py",
   "label": "",
   "schedule": "10 */2 * * *",
   "target": "/opt/central_ingest.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/central/pipeline/main.py",
   "kind": "cron",
   "name": "pipeline/main.py",
   "label": "中央情报流水线：每2小时 清洗+打分+分流（跟采集同步）",
   "schedule": "20 */2 * * *",
   "target": "/opt/central/pipeline/main.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/root/mysql_backup.sh",
   "kind": "cron",
   "name": "root/mysql_backup.sh",
   "label": "",
   "schedule": "0 2 * * *",
   "target": "/root/mysql_backup.sh",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/scripts/chain_inspector.py",
   "kind": "cron",
   "name": "scripts/chain_inspector.py",
   "label": "链巡检官v2 - 算法链接一致性检查（每2小时）",
   "schedule": "0 */2 * * *",
   "target": "/opt/scripts/chain_inspector.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/scripts/industry_score_updater.py",
   "kind": "cron",
   "name": "scripts/industry_score_updater.py",
   "label": "每天8:00自动更新行业评分（基于关键词采集数据，数据采集7:00完成、趋势分析7:30完成）",
   "schedule": "0 21 * * *",
   "target": "/opt/scripts/industry_score_updater.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/watchman/health_check.sh",
   "kind": "cron",
   "name": "watchman/health_check.sh",
   "label": "",
   "schedule": "*/10 * * * *",
   "target": "/opt/watchman/health_check.sh",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/watchman/watchman_tasks.py",
   "kind": "cron",
   "name": "watchman/watchman_tasks.py",
   "label": "",
   "schedule": "*/10 * * * *",
   "target": "/opt/watchman/watchman_tasks.py",
   "target_exists": true,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件还在，只是没人再按点叫它"
  },
  {
   "id": "cron:/opt/xpay/auto_maintain.py",
   "kind": "cron",
   "name": "xpay/auto_maintain.py",
   "label": "",
   "schedule": "0 */2 * * *",
   "target": "/opt/xpay/auto_maintain.py",
   "target_exists": false,
   "backup": "crontab.backup.20260902_2050",
   "backup_at": "2026-09-02 20:48",
   "state": "removed",
   "verdict": "已被删",
   "why": "crontab 备份 crontab.backup.20260902_2050（2026-09-02 20:48）里有这条，现在的 crontab 已经没有 → 已被删掉；脚本文件本身也已经不在服务器上了"
  }
 ],
 "manual_procs": [
  {
   "pid": "105179",
   "etime": "33-06:29:30",
   "cpu": "0.0",
   "script": "/opt/rolesite-master/server.py",
   "cmd": "python3 /opt/rolesite-master/server.py 8933",
   "state": "manual",
   "verdict": "存疑",
   "why": "不在 crontab、也不属于任何 systemd 单元 → 手工起的，重启即丢（一律存疑）"
  },
  {
   "pid": "146720",
   "etime": "41-01:00:00",
   "cpu": "0.0",
   "script": "run_all.py",
   "cmd": "/usr/bin/python3 run_all.py",
   "state": "manual",
   "verdict": "存疑",
   "why": "不在 crontab、也不属于任何 systemd 单元 → 手工起的，重启即丢（一律存疑）"
  },
  {
   "pid": "160943",
   "etime": "33-03:47:30",
   "cpu": "0.0",
   "script": "commander.py",
   "cmd": "bash -c cd /mnt/data/home/fengyu/craft_commander && cp commander.py commander.py.bak_merge_$(date +%Y%m%d_%H%M%S) && echo BI1=$(ls commander.py.bak_me",
   "state": "manual",
   "verdict": "存疑",
   "why": "不在 crontab、也不属于任何 systemd 单元 → 手工起的，重启即丢（一律存疑）"
  },
  {
   "pid": "160945",
   "etime": "33-03:47:30",
   "cpu": "0.4",
   "script": "commander.py",
   "cmd": "python3 commander.py",
   "state": "manual",
   "verdict": "存疑",
   "why": "不在 crontab、也不属于任何 systemd 单元 → 手工起的，重启即丢（一律存疑）"
  },
  {
   "pid": "653665",
   "etime": "17-08:40:04",
   "cpu": "0.0",
   "script": "/root/lingxi_spell.py",
   "cmd": "bash -c python3 /root/lingxi_spell.py 2>&1 | tail -6",
   "state": "manual",
   "verdict": "存疑",
   "why": "不在 crontab、也不属于任何 systemd 单元 → 手工起的，重启即丢（一律存疑）"
  },
  {
   "pid": "653666",
   "etime": "17-08:40:04",
   "cpu": "0.0",
   "script": "/root/lingxi_spell.py",
   "cmd": "python3 /root/lingxi_spell.py",
   "state": "manual",
   "verdict": "存疑",
   "why": "不在 crontab、也不属于任何 systemd 单元 → 手工起的，重启即丢（一律存疑）"
  },
  {
   "pid": "1182103",
   "etime": "39-05:53:48",
   "cpu": "0.0",
   "script": "agent/agent.py",
   "cmd": ".venv/bin/python agent/agent.py --config agents/agent-001.conf.json",
   "state": "manual",
   "verdict": "存疑",
   "why": "不在 crontab、也不属于任何 systemd 单元 → 手工起的，重启即丢（一律存疑）"
  },
  {
   "pid": "1182228",
   "etime": "39-05:53:34",
   "cpu": "0.0",
   "script": "agent/agent.py",
   "cmd": ".venv/bin/python agent/agent.py --config agents/agent-002.conf.json",
   "state": "manual",
   "verdict": "存疑",
   "why": "不在 crontab、也不属于任何 systemd 单元 → 手工起的，重启即丢（一律存疑）"
  },
  {
   "pid": "2196350",
   "etime": "37-12:02:18",
   "cpu": "0.0",
   "script": "runninghub_server.py",
   "cmd": "SCREEN -dmS rh_video bash -c cd /opt/product_video_engine && python3 runninghub_server.py",
   "state": "manual",
   "verdict": "存疑",
   "why": "不在 crontab、也不属于任何 systemd 单元 → 手工起的，重启即丢（一律存疑）"
  },
  {
   "pid": "2196351",
   "etime": "37-12:02:18",
   "cpu": "0.0",
   "script": "runninghub_server.py",
   "cmd": "python3 runninghub_server.py",
   "state": "manual",
   "verdict": "存疑",
   "why": "不在 crontab、也不属于任何 systemd 单元 → 手工起的，重启即丢（一律存疑）"
  },
  {
   "pid": "2298338",
   "etime": "24-15:18:22",
   "cpu": "0.0",
   "script": "/opt/inventory/catalog_dl_server_20260919.py",
   "cmd": "bash -c cd /root && nohup python3 /opt/inventory/catalog_dl_server_20260919.py >> /opt/inventory/_dl_server.log 2>&1 & sleep 2; ss -lntp 2>/dev/null |",
   "state": "manual",
   "verdict": "存疑",
   "why": "不在 crontab、也不属于任何 systemd 单元 → 手工起的，重启即丢（一律存疑）"
  },
  {
   "pid": "2298339",
   "etime": "24-15:18:22",
   "cpu": "0.0",
   "script": "/opt/inventory/catalog_dl_server_20260919.py",
   "cmd": "python3 /opt/inventory/catalog_dl_server_20260919.py",
   "state": "manual",
   "verdict": "存疑",
   "why": "不在 crontab、也不属于任何 systemd 单元 → 手工起的，重启即丢（一律存疑）"
  },
  {
   "pid": "2299317",
   "etime": "00:18",
   "cpu": "0.8",
   "script": "/opt/learn_craft.py",
   "cmd": "python3 /opt/learn_craft.py ecommerce",
   "state": "manual",
   "verdict": "存疑",
   "why": "不在 crontab、也不属于任何 systemd 单元 → 手工起的，重启即丢（一律存疑）"
  },
  {
   "pid": "3674573",
   "etime": "7-15:58:55",
   "cpu": "0.0",
   "script": "/opt/learn_scan/batch_run.py",
   "cmd": "/usr/bin/python3 -u /opt/learn_scan/batch_run.py",
   "state": "manual",
   "verdict": "存疑",
   "why": "不在 crontab、也不属于任何 systemd 单元 → 手工起的，重启即丢（一律存疑）"
  }
 ],
 "cron_backups": [
  {
   "file": "crontab.backup.20260902_2050",
   "at": "2026-09-02 20:48"
  },
  {
   "file": "crontab.backup.20260923_090126",
   "at": "2026-09-23 09:01"
  },
  {
   "file": "crontab.backup.20260923_091027",
   "at": "2026-09-23 09:10"
  },
  {
   "file": "crontab.backup.lx",
   "at": "2026-09-18 21:00"
  },
  {
   "file": "crontab.bak_20261011-193914",
   "at": "2026-10-11 19:39"
  },
  {
   "file": "crontab.bak_airef_20261008_123757",
   "at": "2026-10-07 09:17"
  },
  {
   "file": "crontab.bak_before_dailydigest_20261006",
   "at": "2026-10-06 08:41"
  },
  {
   "file": "crontab.bak_bindassets2_20260927_145608",
   "at": "2026-09-27 14:56"
  },
  {
   "file": "crontab.bak_bindassets_20260927_144825",
   "at": "2026-09-27 14:48"
  },
  {
   "file": "crontab.bak_console_20260927_092857",
   "at": "2026-09-27 09:28"
  },
  {
   "file": "crontab.bak_console_20260927_094604",
   "at": "2026-09-27 09:46"
  },
  {
   "file": "crontab.bak_cost2_20260922_1059",
   "at": "2026-09-22 10:59"
  },
  {
   "file": "crontab.bak_cost_20260922_1059",
   "at": "2026-09-22 10:59"
  },
  {
   "file": "crontab.bak_curvefeed_20261006_103126",
   "at": "2026-10-06 08:41"
  },
  {
   "file": "crontab.bak_demandcron_20261003_120620",
   "at": "2026-10-02 16:44"
  },
  {
   "file": "crontab.bak_digestcron_20261003_184909",
   "at": "2026-10-03 12:06"
  },
  {
   "file": "crontab.bak_diskalert_20261002_164425",
   "at": "2026-09-30 08:50"
  },
  {
   "file": "crontab.bak_geogen_20261011-195631",
   "at": "2026-10-11 19:56"
  },
  {
   "file": "crontab.bak_geostat_ ",
   "at": "2026-09-29 08:31"
  },
  {
   "file": "crontab.bak_geostat_20260929_0832",
   "at": "2026-09-29 08:31"
  },
  {
   "file": "crontab.bak_geostat_20260929_083620",
   "at": "2026-09-29 08:36"
  },
  {
   "file": "crontab.bak_guard_20260928_181609",
   "at": "2026-09-28 18:16"
  },
  {
   "file": "crontab.bak_hbcron_20261003_231121",
   "at": "2026-10-03 18:49"
  },
  {
   "file": "crontab.bak_indcron_20261004_230053",
   "at": "2026-10-04 10:20"
  },
  {
   "file": "crontab.bak_intelcron_20260930_085014",
   "at": "2026-09-29 08:36"
  },
  {
   "file": "crontab.bak_learn_20260922_083245",
   "at": "2026-09-22 08:32"
  },
  {
   "file": "crontab.bak_learn_orig_20260922_083257",
   "at": "2026-09-22 08:32"
  },
  {
   "file": "crontab.bak_learncheck_20261007_091701",
   "at": "2026-10-06 11:03"
  },
  {
   "file": "crontab.bak_learncron_20261004_092351",
   "at": "2026-10-03 23:11"
  },
  {
   "file": "crontab.bak_learnscan_20261005_141120",
   "at": "2026-10-04 23:51"
  },
  {
   "file": "crontab.bak_learntasks_20261004_093632",
   "at": "2026-10-04 09:23"
  },
  {
   "file": "crontab.bak_ledger_20260918_201003",
   "at": "2026-09-18 20:10"
  },
  {
   "file": "crontab.bak_ls2_20261005_141135",
   "at": "2026-10-05 14:11"
  },
  {
   "file": "crontab.bak_ls3_20261005_141306",
   "at": "2026-10-05 14:11"
  },
  {
   "file": "crontab.bak_prewarm_20260927_085840",
   "at": "2026-09-27 08:58"
  },
  {
   "file": "crontab.bak_rankcron_20261004_235156",
   "at": "2026-10-04 23:00"
  },
  {
   "file": "crontab.bak_sites_20260918_203511",
   "at": "2026-09-18 20:35"
  },
  {
   "file": "crontab.bak_sitesdaily_20260921_180957",
   "at": "2026-09-21 18:09"
  },
  {
   "file": "crontab.bak_takeover_20261006_110340",
   "at": "2026-10-06 10:31"
  },
  {
   "file": "crontab.bak_trendcron_20261004_102037",
   "at": "2026-10-04 09:36"
  },
  {
   "file": "crontab.bak_wf_20260918_122420",
   "at": "2026-09-18 12:24"
  }
 ],
 "elapsed_s": 2.65
}