Investigate Service Issues
Debug systemd service failures and investigate issues. Checks status, journal logs, boot-level issues, failed units. Optional auto-restart.
Inputs
| Input |
Type |
Default |
Purpose |
service_name |
string |
- |
Service to check (e.g., aa-workflow-mcp). Empty = all failed |
since |
string |
1h |
Log time window (1h, 30m, 1d) |
auto_restart |
bool |
false |
Restart failed services |
check_all_failed |
bool |
true |
List all failed systemd units |
Persona
Load devops persona (systemd tools: systemctl, journalctl).
Workflow
1. Bootstrap
2. System Info
hostnamectl_status() — hostname, OS
timedatectl_status() — time sync (NTP)
3. Failed Units
systemctl_list_units(pattern="--failed") — all failed units
systemctl_list_unit_files(pattern="aa-workflow-*") — workflow units
4. Service-Specific (if service_name)
systemctl_is_active(unit="{service}.service")
systemctl_is_enabled(unit="{service}.service")
systemctl_status(unit="{service}.service")
journalctl_unit(unit="{service}.service", lines=50)
5. Broad Log Analysis
journalctl_logs(priority="err", since=since, lines=30)
journalctl_boot(boot="0", priority="warning", lines=20)
6. Ollama Check
ollama_status() — inference server
7. Auto-Restart (if auto_restart and service_name)
systemctl_daemon_reload()
systemctl_restart(unit="{service}.service")
systemctl_status(unit="{service}.service") — verify
8. Analyze
Parse for: inactive service, not enabled, failed units count, OOM, permission denied, connection refused, time not synced, restart success.
9. Log
memory_session_log("Investigated service issues", ...)
10. Failure Patterns
- segfault/core dump → binary compatibility
- "too many open files" → ulimit, LimitNOFILE
learn_tool_fix(...) for recurring patterns
Output
Report: issues, recommendations, service status, recent logs, failed units, restart result, system info.
Quick Actions
systemctl_restart(unit="{service}.service")
journalctl_unit(unit="{service}.service", lines=100)
skill_run("manage_local_services", '{"action": "status"}')
Chains To
1---2name: investigate-service-issues3description: Debug systemd service failures - status, journal logs, boot issues, failed units. Optional auto-restart. Use when user says "service down", "check systemd", "investigate service", or "aa-workflow not running".4---56# Investigate Service Issues78Debug systemd service failures and investigate issues. Checks status, journal logs, boot-level issues, failed units. Optional auto-restart.910## Inputs1112| Input | Type | Default | Purpose |13|-------|------|---------|---------|14| `service_name` | string | - | Service to check (e.g., aa-workflow-mcp). Empty = all failed |15| `since` | string | 1h | Log time window (1h, 30m, 1d) |16| `auto_restart` | bool | false | Restart failed services |17| `check_all_failed` | bool | true | List all failed systemd units |1819## Persona2021Load **devops** persona (systemd tools: systemctl, journalctl).2223## Workflow2425### 1. Bootstrap26- `persona_load("devops")`2728### 2. System Info29- `hostnamectl_status()` — hostname, OS30- `timedatectl_status()` — time sync (NTP)3132### 3. Failed Units33- `systemctl_list_units(pattern="--failed")` — all failed units34- `systemctl_list_unit_files(pattern="aa-workflow-*")` — workflow units3536### 4. Service-Specific (if service_name)37- `systemctl_is_active(unit="{service}.service")`38- `systemctl_is_enabled(unit="{service}.service")`39- `systemctl_status(unit="{service}.service")`40- `journalctl_unit(unit="{service}.service", lines=50)`4142### 5. Broad Log Analysis43- `journalctl_logs(priority="err", since=since, lines=30)`44- `journalctl_boot(boot="0", priority="warning", lines=20)`4546### 6. Ollama Check47- `ollama_status()` — inference server4849### 7. Auto-Restart (if auto_restart and service_name)50- `systemctl_daemon_reload()`51- `systemctl_restart(unit="{service}.service")`52- `systemctl_status(unit="{service}.service")` — verify5354### 8. Analyze55Parse for: inactive service, not enabled, failed units count, OOM, permission denied, connection refused, time not synced, restart success.5657### 9. Log58- `memory_session_log("Investigated service issues", ...)`5960### 10. Failure Patterns61- segfault/core dump → binary compatibility62- "too many open files" → ulimit, LimitNOFILE63- `learn_tool_fix(...)` for recurring patterns6465## Output6667Report: issues, recommendations, service status, recent logs, failed units, restart result, system info.6869## Quick Actions7071- `systemctl_restart(unit="{service}.service")`72- `journalctl_unit(unit="{service}.service", lines=100)`73- `skill_run("manage_local_services", '{"action": "status"}')`7475## Chains To7677- `manage_local_services`