跨平台自启动服务管理器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_8add3940/universal-autostart。
技能介绍
要解决什么问题
在 Windows 或 macOS 上把 Python、Node、二进制或 Shell 脚本当成长期运行的后台服务时,常见痛点是:系统自带的自启动机制各有一套(sc/schtasks vs launchd),崩溃后没人拉起,日志散落控制台,Web 服务挂了却进程还在。
Universal AutoStart 把「安装为系统服务 + 运行期看护」收敛到一套 JSON 配置和少量 CLI/脚本入口,面向本机运维场景而不是容器编排。
它如何工作
- 跨平台后端:Windows 走
sc与计划任务;macOS 走launchd。支持install/uninstall/start/stop/status等命令行操作,也可用install.bat、install_macos.sh等脚本双击安装。 - 进程与类型:
program.type支持python、node、binary、shell,通过path、arguments、working_dir描述启动方式。 - 环境与日志:可开启
environment.load_dotenv加载.env,variables会覆盖同名键。日志默认写入.logs/UniversalService_YYYY-MM-DD.log,支持按大小轮转、级别与是否输出到控制台。 - 健康检查与重启:
port或process两种检查;连续失败达到阈值可触发auto_restart,并可用max_restarts、restart_delay限制重启频率,避免死循环。 - 信号:支持
SIGTERM/SIGINT的优雅退出路径。
适用边界与注意点
- 当前文档明确支持 Windows 与 macOS;Linux 不在 v1.1 能力范围内。
- 安装/卸载通常需要管理员权限;权限不足时 Windows 与 macOS 的排查路径不同,应先查日志再改健康检查间隔或
max_failures,避免「检查过严导致频繁重启」。 - Python 等解释器若不在 PATH 中,需在配置里写完整可执行路径,否则服务会表现为「已安装但未真正启动」。
使用场景
- 在 Windows 本机部署 QwenPaw 或自研 Python 网关,需要注册为系统服务并在 8765 端口异常时自动拉起
- macOS 上用 Node 跑常驻 API,希望通过 launchd 开机自启并定期用进程检查确认子进程未僵死
- 把二进制监控程序装进 schtasks/计划任务体系,崩溃后按 max_restarts 限次重启并写入轮转日志
- Shell 包装脚本启动多步骤批处理,需要加载项目根目录 .env 并在 SIGTERM 时优雅退出
适合人员
- 在本机维护 Windows 服务与计划任务、要把 Python/Node 进程做成可监控后台的运维工程师
- 在 macOS 开发机上常驻本地 Web 或代理服务、需要 launchd 自启与端口健康检查的独立开发者
- 维护 Gitee 上 universal-autostart 配置、要为团队统一 service_config.json 标准的内部工具维护者
- 负责 QwenPaw 或同类桌面助手部署、需要 qwenpaw_service_config.json 与日志轮转策略的实施人员