360 Secure SkillHub
360 安全技能中心

ProcessGuard — Critical Process Monitor & Auto-Restart

核心功能:支持HTTP/TCP/PID/Shell等多方式健康检查,故障进程自动重启(可配置重试次数与冷却);可选CPU内存监控(需pidusage依赖),多渠道分级告警;自带心跳文件监控自身状态,提供HTTP JSON状态仪表盘,可限制重启命令白名单。典型场景:DevOps中保障后端、AI服务等关键进程持续运行。输入为JS配置对象,输出含实时状态、告警通知及进程重启操作。

theshadowrose
theshadowrose
热度 87.66
最近更新 2026-05-17 14:07:50
分类:开发依赖:代码执行 / 读写文件 / 第三方 API应用场景:DevOps / 自动化脚本

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add process-guard
Metadata
name
ProcessGuard — Critical Process Monitor & Auto-Restart
description
Monitor critical processes and auto-restart on failure. Tracks CPU and memory usage, escalates alerts via webhook, callback, or file, and writes a dead man's switch heartbeat so you know if ProcessGuard itself goes down. HTTP dashboard included. Zero required dependencies — CPU/memory monitoring unlocked with optional pidusage install.
author
@TheShadowRose
version
2.1.4
tags
["process-guard","monitor","auto-restart","uptime","devops"]
license
MIT

ProcessGuard — Critical Process Monitor & Auto-Restart

Keep services running without babysitting. Define processes, configure health checks, and let ProcessGuard handle the rest.

What It Does

  • Health checks — HTTP, TCP port, PID file, or shell command
  • Auto-restart — configurable retry limits and cooldown delays
  • CPU & memory monitoring — per-process thresholds with alerts (requires npm install pidusage)
  • Alert escalation — warning → critical, delivered via callback / webhook / JSON file
  • Dead man's switch — heartbeat file updated every 10s so external monitors know if ProcessGuard itself crashes
  • HTTP dashboard — optional /status endpoint for real-time JSON status
  • Command allowlist — optionally restrict which executables restart/check commands may use

Quick Setup

const { ProcessGuard } = require('./src/process-guard');

const guard = new ProcessGuard({
  processes: [
    {
      name: 'ollama',
      check: 'http://localhost:11434/api/tags',
      restart: 'ollama serve',
      maxRestarts: 5,
      cooldown: 5000
    }
  ],
  checkInterval: 30000,
  dashboardPort: 9090,
  alert: {
    onAlert: async (alert) => console.error(`ALERT: ${alert.message}`)
  }
});

guard.start();

See README.md for full documentation, all config options, and advanced examples.