Quick Start Guide
Get started with DeadManPing in 2 minutes. Monitor your cron jobs with a simple curl command.
Important: What DeadManPing Does
DeadManPing doesn't run your jobs. It only observes the results.
Your cron runs your jobs. Your scripts execute your logic. DeadManPing only observes if the ping arrived, when it arrived, and what payload it contained.
Keep your cron. Keep your scripts. Just add one curl line at the end of your existing script.
1. Create a Monitor
After signing up, create your first monitor. Give it a name and set how often your job should run.
2. Get Your Ping URL
Each monitor gets a unique URL. Copy it and add it to your cron job or script.
https://deadmanping.com/ping/your-monitor-slug3. Add to Your Existing Script
Important: The curl command must be inside your script, not in the cron line, because only in the script do you have access to variables from execution results (e.g., count, file size, duration).
Here are examples for different scenarios:
Basic Bash Script
#!/bin/bash# Your existing backup script here./backup.sh# Add this one line at the endcurl -X POST "https://deadmanping.com/ping/your-monitor-slug" \ -H "Content-Type: application/json" \ -d '{`"success": true}'Bash Script with Data from Execution
#!/bin/bashusers_synced=$(./sync_users_logic.sh)if [ $? -eq 0 ]; then curl -X POST "https://deadmanping.com/ping/your-monitor-slug" \ -H "Content-Type: application/json" \ -d "{\"success\": true, \"count\": $users_synced}"else curl -X POST "https://deadmanping.com/ping/your-monitor-slug" \ -H "Content-Type: application/json" \ -d '{`"success": false}'fiCrontab Entry
Just call your script. The curl is inside the script.
0 3 * * * /path/to/backup.shPython Script
import requests# Your existing script logic hererecords_synced = sync_users()# Add this one line at the endrequests.post( "https://deadmanping.com/ping/your-monitor-slug", json={"success": True, "count": records_synced})Node.js Script
const https = require('https');// Your existing script logic hereconst recordsSynced = await syncUsers();// Add this one line at the endconst payload = JSON.stringify({"success": true, "count": recordsSynced});const req = https.request('https://deadmanping.com/ping/your-monitor-slug', { method: 'POST', headers: {'Content-Type': 'application/json'}});req.write(payload);req.end();What Can You Monitor?
DeadManPing can monitor different types of verification with data from your script execution:
File Verification
Check if backup file exists and size (GB)
if [ -f "$BACKUP_FILE" ]; then
FILE_SIZE_GB=$(du -h "$BACKUP_FILE" | ...)
curl ... -d "{\"file_exists\": true, \"size_gb\": $FILE_SIZE_GB}"
fiCount Verification
How many records/items were processed
RECORDS_PROCESSED=$(./sync.sh | grep -c "synced")
curl ... -d "{\"count\": $RECORDS_PROCESSED}"Duration Verification
How long script execution took
START_TIME=$(date +%s)
./generate_report.sh
DURATION=$((END_TIME - START_TIME))
curl ... -d "{\"duration_seconds\": $DURATION}"Status Verification
Success/failure with context
if ./backup.sh; then
curl ... -d "{\"success\": true, \"backup_size\": \"$SIZE\"}"
else
curl ... -d "{\"success\": false, \"error\": \"$ERROR\"}"
fiThreshold Verification
Numeric values (more/less than X)
FILES_DELETED=$(./cleanup.sh | wc -l)
curl ... -d "{\"files_deleted\": $FILES_DELETED}"
# In dashboard: files_deleted >= 10 → OK, < 10 → WARN4. Report Failures
If your job fails, you can report it by adding ?s=fail to the URL:
curl -X POST "https://deadmanping.com/ping/your-monitor-slug?s=fail&m=Database+connection+error"5. Set Up Alerts
Configure email, Slack, or Discord webhooks in your settings. You'll get instant notifications when:
- Your job doesn't ping within the expected time window
- Your job reports a failure status
- Your job recovers after being down
FAQ
Do I need to migrate my cron jobs?
No. Keep your cron. Keep your scripts. Just add one curl line at the end of your existing script.
Does DeadManPing run my jobs?
No. Your cron runs your jobs. DeadManPing only observes the results. DeadManPing doesn't touch execution.
Why must curl be inside the script, not in the cron line?
Because only inside the script do you have access to variables from execution results (e.g., count, file size, duration). Data must come from execution, not be hardcoded.
What if my job runs less frequently than 5 minutes?
The free tier has a minimum interval of 5 minutes. Upgrade to Starter or Pro plan for longer intervals.
Can I monitor jobs that run on different servers?
Yes! As long as the server can make HTTP requests, you can ping from anywhere.
What happens if I exceed my monitor limit?
You'll need to upgrade your plan to create more monitors. Existing monitors will continue to work.