T06 · System Persistence
- Location
SKILL.md:84- Finding
Persistent Unattended Agent Execution Through a User-Level systemd Service
- Content
View full analysis
[--runtime dry-run|openclaw-cli] [--runner-id ] [--ttl-seconds ] [--max-attempts ] [--timeout ] [--report-sink none|ledger|openclaw-chat-inject] [--master-session-key ] [--json] taskops runner watch [--runtime dry-run|openclaw-cli] [--runner-id ] [--ttl-seconds ] [--max-attempts ] [--timeout ] [--report-sink none|ledger|openclaw-chat-inject] [--master-session-key ] [--poll-interval-ms ] [--max-waves ] [--max-idle-cycles ] [--idle-exit-after-seconds ] [--until ] [--continue-on-failure] [--json] taskops daemon run [--name ] [--runtime dry-run|openclaw-cli] [--runner-id ] [--ttl-seconds ] [--max-attempts ] [--timeout ] [--report-sink none|ledger|openclaw-chat-inject] [--master-session-key ] [--poll-interval-ms ] [--daemon-poll-interval-ms ] [--failure-backoff-ms ] [--max-daemon-cycles ] [--continue-on-failure] [--json] taskops daemon unit [--name ] [--runtime dry-run|openclaw-cli] [--json] taskops daemon install [--name ] [--runtime dry-run|openclaw-cli] [--start] [--dry-run] [--json] taskops daemon start|stop|restart|status|logs|uninstall [--json] ``` ```text Important boundary: - SQLite does not call OpenClaw and does not execute triggers by itself. - The watch runner is the process that stays alive and invokes the runtime adapter. - `taskops daemon install --name --start` is the preferred unattended local mode. It writes a user-systemd service around `taskops daemon run`, not around `runner watch`, so normal `all_closed` watch exits do not become systemd restart loops. - `taskops daemon run` repeatedly starts watch cycles, preserve ...[truncated 3879 chars]- Remediation
View remediation
