Skip to main content
Cron job monitoring

Know when client-site scheduled jobs stop checking in

DownCTL watches expected job check-ins for client-site cron jobs, recurring scripts, and background automations, then alerts when a process misses its window.

No credit card required during the trial period.

Daily billing sync

0 6 * * *

Status

Healthy

Last ping

4 min ago

Grace time

5m

Last runtime

12.40s

Recent pings

Next due 5:56 AM
Finished 12.40s
Sep 11 05:56:18
Started
Sep 11 05:56:03
Finished 13.10s
Sep 10 05:56:16
Failed exit 1
Sep 09 05:56:12

Laravel scheduler

Attach a DownCTL monitor to scheduled commands.

Schedule::command('reports:daily')
    ->dailyAt('06:00')
    ->cronMonitor(config('services.downctl.reports_daily'));
Started

Pings when the command begins.

Finished

Records successful runtime.

Failed

Captures a failed exit.

Environment value

DOWNCTL_REPORTS_DAILY=https://downctl.com/api/ping/cron/********

Secure ping URL

Use the same token from shell scripts or any scheduler.

Monitor token

crn_live_8Jk2...Qp7z

curl -fsS "$DOWNCTL_REPORTS_DAILY/started"
php artisan reports:daily
curl -fsS "$DOWNCTL_REPORTS_DAILY/finished"

Token safety

Keep the URL in an environment variable.

Lifecycle paths

/started /finished /failed

What cron monitoring tracks

Cron monitoring watches expected check-ins for scheduled jobs, recurring scripts, automations, and background processes so recurring work is confirmed instead of assumed.

Expected check-ins

Missed pings

Cron status

Recent ping history

Recurring script and automation health

Failure alerts

Why it matters

Cron monitors act like a dead man's switch for invisible background work: each job checks in on its normal schedule, and DownCTL alerts when that expected signal goes missing. That catches silent failures in billing, imports, reports, and notifications long before a client notices the downstream damage.

Cron failures are often silent

Background jobs can break billing, reports, imports, and notifications

Recurring scripts and automations need a lightweight way to prove they ran

Teams need alerts when jobs do not run on schedule

How it works in DownCTL

Cron job monitoring keeps invisible client-site maintenance work visible when scheduled tasks, recurring scripts, or automations miss their expected cadence.

  1. 1 Create a cron monitor
  2. 2 Add the generated ping URL to the scheduled job, script, or automation
  3. 3 DownCTL waits for expected check-ins
  4. 4 Alert when the process misses its window
Setup guide

Follow the complete setup guide for configuration details and framework examples.

See the full setup guide
FAQ

Common questions

What is cron job monitoring?

Cron job monitoring checks whether scheduled jobs, recurring scripts, and background automations report in when expected. Instead of only telling you when a command throws an error, it catches the quieter failure mode where the job never ran at all.

What is a dead man's switch?

A dead man's switch is a monitor that expects a regular check-in from another system. DownCTL waits for your cron job to ping its unique URL on schedule, then marks the monitor overdue if the ping does not arrive inside the expected window.

How is cron monitoring different from uptime monitoring?

Uptime monitoring checks whether a website or endpoint responds from the outside. Cron monitoring checks whether internal scheduled work actually ran, which helps catch missed imports, billing syncs, reports, cleanup jobs, and other background tasks that may fail without taking the website offline.

How do ping URLs work?

Each cron monitor gets a unique ping URL. Your job, script, or automation calls that URL when it runs, and DownCTL alerts if the check-in is missing. Treat the ping token as a credential because anyone with the URL can ping the monitor.

What happens if a cron job runs late?

If the job misses its expected window, DownCTL can mark it as failing and notify your team. You can define the schedule, timezone, and how many missed runs to tolerate before alerting.

Does it work with Laravel's scheduler?

Yes. The DownCTL Laravel package adds a `->cronMonitor()` scheduler macro, so you can chain it onto a scheduled command instead of calling the ping URL manually. It automatically pings `/started`, `/finished` with runtime, or `/failed` depending on how the command exits.

Can I monitor recurring scripts that are not cron jobs?

Yes. Any recurring process that can make an HTTP request can use the cron monitor ping URL. The plain PHP SDK also supports the same started, finished, and failed lifecycle for scripts that do not use Laravel.

Can cron failures alert Slack or PagerDuty?

Yes. Cron monitor failures can use DownCTL alert rules and notification channels. That lets the same missed-job signal reach Slack, PagerDuty, email, webhooks, or the other channels your team already uses.

Start monitoring with DownCTL

Start your free trial and bring client-site uptime, website health, alerts, and status pages into one place.

14-day free trial · No credit card required · Cancel anytime