Use systemd-run to test your cron jobs in their actual environment
Cron & Task Scheduling (Cron/Systemd Timers/At)
Use systemd-run to test your cron jobs in their actual environment
🧩 The Challenge
You finally fixed that script that fails every Wednesday morning, but now you have to wait until next Wednesday to see if it actually works. It’s infuriating to watch a cron job bomb out because it can’t find a path or an environment variable that only exists when the scheduler runs it.
💡 The Fix
Use systemd-run to spawn your command as a transient service. This forces it to run in the exact same cgroup and environment constraints as your permanent timer or cron job.
systemd-run --unit=test-job --wait /usr/local/bin/backup-sync.sh
⚙️ Why It Works
This command tells the init system to treat your one-off script like a formal unit file without needing to edit a single config. Adding the –wait flag keeps your shell attached so you can see the stdout and the exit code immediately.
🚀 Pro-Tip: Check the status of your transient unit with systemctl status test-job even after it finishes to grab the final log output from the journal.
Linux Tips & Tricks | © ngelinux.com | 10/2/2026
