How to verify crond daemon and cron jobs are running on Linux

See all GNU/Linux related FAQ
How do I verify or check cronjob is running or not under a CentOS / RHEL / Fedora / Ubuntu / Debian Linux from a shell prompt?

The cron or crond is a daemon to execute scheduled commands (Vixie Cron) on Linux or Unix-like systems. Usually, it is started automatically from /etc/init.d or systemd on entering multi-user runlevels. This page shows how to verify crond daemonservice and cron jobs are running or not on Linux operating system using the CLI.
Tutorial details
Difficulty level Easy
Root privileges Yes
Requirements Linux terminal
Category Processes Management
OS compatibility AlmaLinux Alpine Arch Debian Fedora Mint openSUSE Pop!_OS RHEL Rocky Stream SUSE Ubuntu WSL
Est. reading time 4 minutes

RHEL/CentOS v4.x/5.x/6.x and Fedora Linux (older version) verify crond daemon service

You can simply use any one of the following command to see if crond is running or not. For instance, type the pgrep command:
# pgrep crond
Of course, you can use the combination of the ps command and grep command/pgrep command as follows to find out if a process is running or not on Linux:
# ps aux | grep -i crond
One can use the service command as follows too:
# service crond status
Here is what I see when the service is running:

crond (pid 4370) is running...

If it is not running type the following two command to start the crond:
# chkconfig crond on
# service crond start

Verify cron is running by viewing log file, enter:
# tail -f /var/log/cron

A note about CentOS/RHEL v7.x+ and latest version of Fedora Linux

You need to use the following command to find out if the crond is running or not:
$ systemctl status crond.service
Sample outputs:

   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled)
   Active: active (running) since Tue 2015-05-19 14:53:32 EDT; 3min 7s ago
 Main PID: 1292 (crond)
   CGroup: /system.slice/crond.service
           └─1292 /usr/sbin/crond -n

If not running configure the crond service to start automatically on boot:
$ sudo systemctl enable crond.service
$ sudo systemctl start crond.service

A note about Debian / Ubuntu Linux (older version) Cron service

On a Debian and Ubuntu Linux cron logs its action logged to the syslog facility i.e. use /var/log/messages file:
# tail -f /var/log/messages
Find out if cron daemon is running or not, enter:
# pgrep cron
If not running start it, enter:
# update-rc.d cron defaults
# /etc/init.d/cron start

A note about Debian Linux v8.x+ and latest version of Ubuntu Linux

The syntax is as follows to check if the cron service is running or not:
# systemctl status cron
Sample outputs:

● cron.service - Regular background program processing daemon
   Loaded: loaded (/lib/systemd/system/cron.service; enabled)
   Active: active (running) since Tue 2015-05-19 11:49:32 IST; 12h ago
     Docs: man:cron(8)
 Main PID: 1053 (cron)
   CGroup: /system.slice/cron.service
           ├─1053 /usr/sbin/cron -f
           └─3020 /usr/bin/atop -a -w /var/log/atop/atop_20150520 600

If not running configure the crond service to start automatically on boot:
$ sudo systemctl enable cron.service
$ sudo systemctl start cron.service

See Debian / Linux service management for more information or read the following manual pages using the man command or help command

man systemctl
man crontab
man service
man ps
man grep
man pgrep

How to verify a crontab file that contains users cron jobs

Type the following crontab command to list the cron jobs:
$ crontab -l
Want to check root user cron jobs? Try:
$ sudo crontab -l -u root
After giving out the password, I see:

# rsnapshot (grab data for nixCraft blog, forum and all other side projects)
MAILTO=""
# Unlock ssh keys using the wrapper magic and then go for it
10 */4 * * * 	/root/bin/sshlogin ahourly
20  1  * * *	/root/bin/sshlogin bdaily
30 21  * * 7	/root/bin/sshlogin cweekly
40 22  1 * *	/root/bin/sshlogin dmonthly
50  0  1 1 * 	/root/bin/sshlogin eyearly
# Send all local backups to AWS S3 cloud
@midnight 	/root/bin/sync-nixcraft-wks01-s3-storage
# Grab all LXD images here from Linode Vms here
@daily 		/root/bin/sync-lxd-images-backup
# Monitor WireGuard VPN client 
*/5 * * * *     /root/bin/monitor-wg
# Shutdown server when running out of laptop battery
@reboot		/usr/sbin/daemon /root/bin/powerdown-when-battry-is-low
# Grab lxd images from nixcraft-wks01 developer laptop
@midnight	/root/bin/sync-containers-backup-from-dev-machine

A note about systemd timers

Systemd comes with Timers unit file and can act as an alternative to crond service on modern Linux distros with systemd. The commands are as follows:

Viewing all started timers

Run:
$ systemctl list-timers
$ systemctl list-timers --all

How to verify crond daemon and cron jobs are running on Linux when using systemd timers

How to Verify a systemct timer (crontab) file (Click to enlarge )

Then you can list the contains of systemd timer cron as follows from the above list:
$ systemctl cat logrotate.time
Outputs:

# /lib/systemd/system/logrotate.timer
[Unit]
Description=Daily rotation of log files
Documentation=man:logrotate(8) man:logrotate.conf(5)
 
[Timer]
OnCalendar=daily
AccuracySec=12h
Persistent=true
 
[Install]
WantedBy=timers.target

Summing up

You learned how to verify a crontab file containing cron jobs and find out if a crond service running or not.

This entry is 3 of 16 in the Linux Cron Jobs Howto & Tutorial series. Keep reading the rest of the series:
  1. What is cron on a Linux or Unix-like systems?
  2. How To Add Jobs To cron Under Linux or UNIX?
  3. Verify crond Daemon And Cronjobs Are Running
  4. Start Restart and Stop The Cron or Crond Service
  5. List / Display All Cron Jobs
  6. Linux / UNIX Crontab File Location
  7. Change Crontab Email Settings ( MAILTO )
  8. Disable The Mail Alert By Crontab Command On a Linux or Unix-like Systems
  9. At What Time Cron Entries In cron.daily, cron.weekly, cron.monthly Run?
  10. Execute Cron Job After System Reboot
  11. Setup and Run PHP Script As A Cron Job
  12. Run crontab job every minute on a Linux or Unix-like system
  13. Running crontab (cron jobs) Every 10 Minutes
  14. Cron Job Script Execution on the Last Day of a Month
  15. Execute / Run crontab (cron jobs) every 1 minute
  16. Ubuntu create cron.log file

🥺 Was this helpful? Please add a comment to show your appreciation or feedback.

nixCrat Tux Pixel Penguin
Hi! 🤠
I'm Vivek Gite, and I write about Linux, macOS, Unix, IT, programming, infosec, and open source. Subscribe to my RSS feed or email newsletter for updates.

7 comments… add one
  • Tushar Dec 8, 2009 @ 18:30

    use ‘jobs’ command

  • hostingas, svetainiu talpinimas Nov 16, 2011 @ 22:11

    thank you. your post saved my ass :D

    • Pops Jan 24, 2013 @ 15:59

      Screw your ass………
      this solution didn’t helped me.

      • Anonymous Mar 30, 2022 @ 17:17

        Maybe learn how a Linux Platform works.

        This article shows you the basics of what to do if cron is not working, you know some of the basic checks and balances needed.

        If you need a more advanced solution or research then maybe there is that knows more then you that you can talk to about it?

  • shgn Nov 24, 2013 @ 5:50

    thank you.

  • arun Jul 15, 2015 @ 19:47

    This is NOT WORKING

    • Nimboda Mar 31, 2022 @ 15:20

      What is not working? Did you even read the page?

Leave a Reply

Your email address will not be published. Required fields are marked *

Use HTML <pre>...</pre> for code samples. Your comment will appear only after approval by the site admin.