T06 · System Persistence
- Location
install.sh:92- Finding
Installer Creates Five Persistent Recurring OpenClaw 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" 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 "boost-watchdog" "*/15 * * * *" "$WATCHDOG_PROMPT" add_job_if_missing "boost-replayer" "*/30 * * * *" "$REPLAYER_PROMPT" add_job_if_missing "boost-escalator" "0 * * * *" "$ESCALATOR_PROMPT" add_job_if_missing "boost-validator" "5 * * * *" "$VALIDATOR_PROMPT" add_job_if_missing "boost-smoke-test" "0 */6 * * *" "$SMOKETEST_PROMPT" ``` If the CLI is unavailable, the fallback directly modifies the persistent OpenClaw job configuration and enables every added job: ```python for name, info in prompts.items(): if name in existing_names: skipped.append(name) continue 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", ...[truncated 3606 chars]- Remediation
View remediation
