Open source · Self-host free · Cloud from $29/mo

Know the moment your cron jobs go silent

DeadManCheck alerts you when jobs stop running, run too long, or run — but do nothing. One monitor for all three.

Start monitoring free Self-host on GitHub →

Free for 20 monitors. No credit card needed.

your_cron_job.sh
#!/bin/bash
# Wrap your existing job — takes 2 lines

curl -s https://deadmancheck.io/ping/YOUR-ID/start

./your_actual_job.py

curl -s https://deadmancheck.io/ping/YOUR-ID

That's it. Any language, any platform — if it can make an HTTP request, it works.

Three ways a cron job fails

A basic heartbeat check only catches the first. DeadManCheck catches all three.

💀

It stops running

The server was replaced, the crontab got wiped, the scheduler died. Your job checks in after each run — when it goes quiet, you get an alert.

⏱

It runs too long

Your 2-minute job suddenly takes 20. DeadManCheck learns each job's normal runtime from its own history and alerts on anomalies — no thresholds to set or maintain.

🔬 1 monitor free

It runs — but does nothing

Exit code 0, on time, and it exported 0 rows. Send a count with your ping, set a rule like count > 0, and get alerted when the job technically succeeded but did no work.

Output assertions · free on 1 monitor, unlimited on Pro

Your backup ran. It exported 0 rows. You found out three weeks later.

A plain heartbeat only asks did it run? Output assertions also ask did it actually do anything? Include a count in your ping — rows exported, files copied, records synced — and DeadManCheck checks it against your rules on every run. How output assertions work →

# Ping with a count — assertions evaluated server-side
curl -X POST https://deadmancheck.io/ping/YOUR-ID \
-H "Content-Type: application/json" \
-d '{"count": 1500}'
# Rule: count > 0 → ✓ pass
# Next night: {"count": 0} → ⚠ alert fired

Also included

✓

Multi-channel alerts

Email and webhooks on every plan; Slack, Discord, Telegram and PagerDuty on Pro. Recovery alerts included.

✓

Public status pages

Share a live status page with your users. Free on every plan.

✓

Website uptime monitoring

Check URLs every 1–60 minutes, with response time tracking.

✓

Run history

Every ping, duration and payload, with a duration graph for each monitor.

✓

Start/end pings

Call /start when the job begins and ping when it ends — duration is calculated for you.

✓

Prometheus metrics

Scrape /metrics alongside the rest of your infrastructure.

✓

Open source

Run it yourself on Railway, Render or your own server. Pay us only if you want us to host it.

✓

GitHub & Google sign-in

Up and running in under a minute.

Works with everything

Python Node.js Bash Ruby Go PHP Rust GitHub Actions Docker Kubernetes

Start monitoring in 2 minutes

Free for 20 monitors. No credit card. Self-host forever.

Create free account