crond -x [ext,sch,proc,pars,load,misc,test,bit]
Cron searches /var/spool/cron for crontab files which are named after accounts in /etc/passwd; The found crontabs are loaded into the memory. Cron also searches for /etc/anacrontab and any files in the /etc/cron.d directory, which have a different format (see crontab(5)). Cron examines all stored crontabs and checks each job to see if it needs to be run in the current minute. When executing commands, any output is mailed to the owner of the crontab (or to the user specified in the MAILTO environment variable in the crontab, if such exists). Any job output can also be sent to syslog by using the -s option.
There are two ways how changes in crontables are checked. The first method is checking the modtime of a file. The second method is using the inotify support. Using of inotify is logged in the /var/log/cron log after the daemon is started. The inotify support checks for changes in all crontables and accesses the hard disk only when a change is detected.
When using the modtime option, Cron checks its crontables' modtimes every minute to check for any changes and reloads the crontables which have changed. There is no need to restart Cron after some of the crontables were modified. The modtime option is also used when inotify can not be initialized.
Cron checks these files and directories:
- system crontab. Nowadays the file is empty by default. Originally it was usually used to run daily, weekly, monthly jobs. By default these jobs are now run through anacron which reads /etc/anacrontab configuration file. See anacrontab(5) for more details.
- directory that contains system cronjobs stored for different users.
- directory that contains user crontables created by the crontab command.
Note that the crontab(1) command updates the modtime of the spool directory whenever it changes a crontab.
If time was adjusted one hour forward, those jobs that would have run in the interval that has been skipped will be run immediately. Conversely, if time was adjusted backward, running the same job twice is avoided.
Time changes of more than 3 hours are considered to be corrections to the clock or the timezone, and the new time is used immediately.
It is possible to use different time zones for crontables. See crontab(5) for more information.
- Prints a help message and exits.
- Disables inotify support.
- This option allows you to specify a shell command to use for sending Cron mail output instead of using sendmail(8) This command must accept a fully formatted mail message (with headers) on standard input and send it as a mail message to the recipients specified in the mail headers. Specifying the string off (i.e., crond -m off) will disable the sending of mail.
- Tells the daemon to run in the foreground. This can be useful when starting it out of init. With this option is needed to change pam setting. /etc/pam.d/crond must not enable pam_loginuid.so module.
- Allows Cron to accept any user set crontables.
- Don't set PATH. PATH is instead inherited from the environment.
- This option enables clustering support, as described below.
- This option will direct Cron to send the job output to the system log using syslog(3). This is useful if your system does not have sendmail(8), installed or if mail is disabled.
- This option allows you to set debug flags.
- Print version and exit.
Rather than editing /var/spool/cron/.cron.hostname directly, use the -n option of crontab(1) to specify the host.
You should ensure that all hosts in a cluster, and the file server from which they mount the shared crontab directory, have closely synchronised clocks, e.g., using ntpd(8), otherwise the results will be very unpredictable.
Using cluster sharing automatically disables inotify support, because inotify cannot be relied on with network-mounted shared file systems.
The syslog output will be used instead of mail, when sendmail is not installed.