T06 · System Persistence
- Location
install.sh:97- Finding
Installation of Persistent Autonomous Scheduled Jobs
- Content
View full analysis
/dev/null; then echo "Using OpenClaw CLI to add cron jobs..." add_job_if_missing() { local name="$1" cron="$2" prompt="$3" # Check if job already exists if openclaw cron list 2>/dev/null | grep -q "$name"; then echo " Skipped (already exists): $name" else openclaw cron add \ --name "$name" \ --cron "$cron" \ --session isolated \ --message "$prompt" \ --announce 2>/dev/null && echo " Added job: $name" || echo " Warning: failed to add $name via CLI" fi } add_job_if_missing "keep-alive-watchdog" "*/15 * * * *" "$WATCHDOG_PROMPT" add_job_if_missing "keep-alive-replayer" "*/30 * * * *" "$REPLAYER_PROMPT" add_job_if_missing "keep-alive-escalator" "0 * * * *" "$ESCALATOR_PROMPT" add_job_if_missing "memory-validator" "5 * * * *" "$VALIDATOR_PROMPT" add_job_if_missing "memory-smoke-test" "0 */6 * * *" "$SMOKETEST_PROMPT" else echo "OpenClaw CLI not found. Merging jobs directly into jobs.json..." JOBS_FILE="$OPENCLAW_DIR/cron/jobs.json" mkdir -p "$OPENCLAW_DIR/cron" ``` The fallback creates each job as enabled and scheduled: ```python job = { "id": secrets.token_hex(6), "name": name, "prompt": info["prompt"], "skills": [SKILL_NAME], "skill": SKILL_NAME, "model": None, "provider": None, "base_url": None, "schedule": { "kind": "cron", "expression": info["cron"], "display": info["cron"] }, "schedule_display": info["cron"], "repeat": {"times": None, "completed": 0}, "enabled": True, "state": "scheduled", "paused_at": None, "paused_reason": None, "created_at": now, "next_run_at": now, ...[truncated 2030 chars]- Remediation
View remediation
