Agent skill · operations · sundial-org
linux-service-triage
Diagnoses common Linux service issues using logs, systemd/PM2, file permissions, Nginx reverse proxy checks, and DNS sanity checks. Use when a server app is failing, unreachable, or misconfigured.
Why this skill is useful
Provides specific commands and diagnostic workflows for common Linux service issues that the AI wouldn't reliably generate on its own.
What it needs
About 2k tokens when loaded. Last updated 2026-03-07. 639 stars on the source repository.
What this skill does
Linux & service basics: logs, systemd/PM2, permissions, Nginx reverse proxy, DNS checks PURPOSE Diagnoses common Linux service issues using logs, systemd/PM2, file permissions, Nginx reverse proxy checks, and DNS sanity checks. WHEN TO USE TRIGGERS: Show me why this service is failing using logs, then give the exact fix commands. Restart this app cleanly and confirm it is listening on the right port. Fix the permissions on this folder so the service can read and write safely. Set up Nginx reverse proxy for this port and verify DNS and TLS are sane. Create a systemd service for this script and make it survive reboots. DO NOT USE WHEN… You need kernel debugging or deep performance profiling. You want to exploit systems or bypass access controls. INPUTS REQUIRED: Service type: systemd unit name or PM2 process name. Observed symptom: error message, status output, or logs (pasted by user). OPTIONAL: Nginx config snippet, domain name, expected upstream port. Filesystem paths used by the service. EXAMPLES: systemctl status myapp output + journalctl excerpt Nginx server block + domain + upstream port OUTPUTS Default: triage report (likely cause, evidence from logs, minimal fix plan). If explicitly requested and safe: exact shell commands to apply the fix. Success = service runs, listens on expected port, and reverse proxy/DNS path is correct. WORKFLOW 1. Confirm scope and safety: identify service name and whether changes are permitted. 2. Gather evidence: status output + recent logs (see references/triage-commands.md). 3. Classify failure: config error, dependency missing, permission denied, port conflict, upstream unreachable, DNS mismatch. 4. Propose minimal fix + verification steps. 5. Validate network path (if web service): app listens → Nginx proxies → DNS resolves → (TLS sanity if applicable). 6. Provide restart/reload plan and confirm health checks. 7. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills sundial-org/linux-service-triage