Agent Skills › YaoApp/yao › yao-daemon

yao-daemon

GitHub

用于管理后台守护进程的生命周期,包括启动、停止、重启和状态监控。支持自动端口检测及详细日志输出,适用于开发服务器或长期运行服务的运维操作。

tools/skills/yao-daemon/SKILL.md YaoApp/yao

触发场景

用户要求启动后台服务或开发服务器 用户需要检查或监控守护进程状态 用户请求重启或停止正在运行的后台进程

安装

npx skills add YaoApp/yao --skill yao-daemon -g -y
更多选项

非标准路径

npx skills add https://github.com/YaoApp/yao/tree/main/tools/skills/yao-daemon -g -y

不安装直接使用

npx skills use YaoApp/yao@yao-daemon

指定 Agent (Claude Code)

npx skills add YaoApp/yao --skill yao-daemon -a claude-code -g -y

安装 repo 全部 skill

npx skills add YaoApp/yao --all -g -y

预览 repo 内 skill

npx skills add YaoApp/yao --list

SKILL.md

Frontmatter
{
    "name": "yao-daemon",
    "description": "Daemon process management — start, monitor, restart, stop long-running services. ALWAYS invoke this skill when the user asks to start, check, restart, or stop background services, dev servers, or daemon processes."
}

Daemon Management

Tools

  • yao_daemon_start — Start a long-running service. Always runs in background; returns daemon_id immediately.
  • yao_daemon_list — List daemons. Supports --status filter and --limit/--offset pagination.
  • yao_daemon_status — Get full details for a daemon (daemon_port, daemon_url, started_at, daemon_restarts).
  • yao_daemon_stop — Stop a running daemon.
  • yao_daemon_restart — Restart a daemon (preserves the same ID, increments daemon_restarts).
  • yao_job_output — Read daemon output (pass daemon_id as job_id).

Parameters

yao_daemon_start

Param Required Default Description
command yes — Shell command to execute
description yes — Concise 5–10 word summary
port no auto-detect Expected listen port; the system verifies the port is ready before reporting it
args no — Additional arguments
working_dir no workspace Working directory

yao_daemon_list

Param Default Description
status all Filter: running, stopping, completed, failed, cancelled, port_detecting, all
limit 20 Max items per page
offset 0 Skip first N items

yao_daemon_restart / yao_daemon_status / yao_daemon_stop

Param Required Description
daemon_id yes The daemon ID

Response Fields

All responses are JSON. Daemon objects contain:

id, kind, session_id, status, description,
command, command_argv, command_line, pid, pgid, user,
started_at, finished_at, duration_ms, exit_code, signal, detail,
daemon_port, daemon_url, daemon_restarts, seq
  • daemon_port — The verified listen port (0 if not yet detected or not specified).
  • daemon_url — http://localhost:<port> (empty until port is verified as listening by the daemon's own process tree).
  • daemon_restarts — Number of restarts via yao_daemon_restart.
  • started_at — Unix millisecond timestamp of the most recent start.

Port detection behavior:

Both modes start by returning port_detecting with daemon_port: 0 if the port is not confirmed within the initial ~2s settle window. If the port is confirmed within ~2s, start returns running with daemon_port/daemon_url directly.

  • --port N (explicit): Verifies port N is listening AND owned by this daemon's process tree. If not confirmed within ~2s, returns status: "port_detecting". Poll yao_daemon_status until status changes to running — either with daemon_port: N and daemon_url (port confirmed), or with daemon_port: 0 and detail: "specified port N not detected within timeout" (~60s).
  • No --port (auto-detect): Scans the daemon's process tree for any listening TCP port. If not found within ~2s, returns status: "port_detecting". The scan continues in background (~60s); if a port is found, status changes to running with daemon_port/daemon_url and a <BackgroundJobReceipt> is delivered. If no port is found after ~60s, status changes to running with daemon_port: 0.

List (paginated)

{ "daemons": [...], "total": 5, "offset": 0, "limit": 20, "has_more": false }

Stop (already terminal)

{ "job": { ... }, "detail": "already in terminal state (cancelled); no action taken" }

Errors

Structured JSON with code and message:

{ "error": { "code": "not_found", "message": "daemon \"dmn_xxx\" not found" } }

Codes: invalid_argument, not_found, internal.

Usage Rules

  1. Always provide a description.
  2. Specify port when starting a server — the system confirms the port is actually listening before reporting daemon_url.
  3. Daemons run indefinitely — use yao_daemon_stop to terminate.
  4. Use yao_daemon_restart to restart a crashed or misconfigured daemon without losing its ID.
  5. Monitor output with yao_job_output passing the daemon_id as job_id.

BackgroundJobReceipt

When a daemon's port becomes ready, the system delivers a <BackgroundJobReceipt> XML message containing the daemon_url. Use that URL for subsequent HTTP requests to the daemon.

版本历史

  • 22a7a2c 当前 2026-10-20 06:43

同 Skill 集合

tools/skills/yao-agent/SKILL.md
tools/skills/yao-audio/SKILL.md
tools/skills/yao-board/SKILL.md
tools/skills/yao-decision/SKILL.md
tools/skills/yao-doc/SKILL.md
tools/skills/yao-image/SKILL.md
tools/skills/yao-job/SKILL.md
tools/skills/yao-ocr/SKILL.md
tools/skills/yao-process/SKILL.md
tools/skills/yao-secret/SKILL.md
tools/skills/yao-web/SKILL.md
tools/skills/yao-workspace-config/SKILL.md
tools/skills/yao-workspace/SKILL.md

元信息

文件数
0
版本
22a7a2c
Hash
1494ce44
收录时间
2026-10-20 06:43

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-11-01 20:49
浙ICP备14020137号-1