1.\"/* Copyright 1988,1990,1993 by Paul Vixie 2.\" * All rights reserved 3.\" * 4.\" * Distribute freely, except: don't remove my name from the source or 5.\" * documentation (don't take credit for my work), mark your changes (don't 6.\" * get me blamed for your possible bugs), don't alter or remove this 7.\" * notice. May be sold if buildable source is provided to buyer. No 8.\" * warrantee of any kind, express or implied, is included with this 9.\" * software; use at your own risk, responsibility for damages (if any) to 10.\" * anyone resulting from the use of this software rests entirely with the 11.\" * user. 12.\" * 13.\" * Send bug reports, bug fixes, enhancements, requests, flames, etc., and 14.\" * I'll try to keep a version up to date. I can be reached as follows: 15.\" * Paul Vixie <paul@vix.com> uunet!decwrl!vixie!paul 16.\" */ 17.\" 18.\" $FreeBSD$ 19.\" 20.Dd April 15, 2019 21.Dt CRON 8 22.Os 23.Sh NAME 24.Nm cron 25.Nd daemon to execute scheduled commands (Vixie Cron) 26.Sh SYNOPSIS 27.Nm 28.Op Fl j Ar jitter 29.Op Fl J Ar rootjitter 30.Op Fl m Ar mailto 31.Op Fl n 32.Op Fl s 33.Op Fl o 34.Op Fl x Ar debugflag Ns Op , Ns Ar ... 35.Sh DESCRIPTION 36The 37.Nm 38utility should be started from 39.Pa /etc/rc 40or 41.Pa /etc/rc.local . 42It will return immediately, 43so you do not need to start it with '&'. 44.Pp 45The 46.Nm 47utility searches 48.Pa /var/cron/tabs 49for crontab files which are named after accounts in 50.Pa /etc/passwd ; 51crontabs found are loaded into memory. 52The 53.Nm 54utility also searches for 55.Pa /etc/crontab 56and files in 57.Pa /etc/cron.d 58and 59.Pa /usr/local/etc/cron.d 60which are in a different format (see 61.Xr crontab 5 ) . 62.Pp 63The 64.Nm 65utility 66then wakes up every minute, examining all stored crontabs, checking each 67command to see if it should be run in the current minute. 68Before running a command from a per-account crontab file, 69.Nm 70checks the status of the account with 71.Xr pam 3 72and skips the command if the account is unavailable, 73e.g., locked out or expired. 74Commands from 75.Pa /etc/crontab 76bypass this check. 77When executing 78commands, any output is mailed to the owner of the crontab (or to the user 79named in the 80.Ev MAILTO 81environment variable in the crontab, if such exists). 82The from address of this mail may be set with the 83.Ev MAILFROM 84environment variable. 85.Pp 86Additionally, 87.Nm 88checks each minute to see if its spool directory's modification time (or 89the modification time on 90.Pa /etc/crontab ) 91has changed, and if it has, 92.Nm 93will then examine the modification time on all crontabs and reload those 94which have changed. 95Thus 96.Nm 97need not be restarted whenever a crontab file is modified. 98Note that the 99.Xr crontab 1 100command updates the modification time of the spool directory whenever it 101changes a crontab. 102.Pp 103Available options: 104.Bl -tag -width indent 105.It Fl j Ar jitter 106Enable time jitter. 107Prior to executing commands, 108.Nm 109will sleep a random number of seconds in the range from 0 to 110.Ar jitter . 111This will not affect superuser jobs (see 112.Fl J ) . 113A value for 114.Ar jitter 115must be between 0 and 60 inclusive. 116Default is 0, which effectively disables time jitter. 117.Pp 118This option can help to smooth down system load spikes during 119moments when a lot of jobs are likely to start at once, e.g., 120at the beginning of the first minute of each hour. 121.It Fl J Ar rootjitter 122Enable time jitter for superuser jobs. 123The same as 124.Fl j 125except that it will affect jobs run by the superuser only. 126.It Fl m Ar mailto 127Overrides the default recipient for 128.Nm 129mail. 130Each 131.Xr crontab 5 132without 133.Ev MAILTO 134explicitly set will send mail to the 135.Ar mailto 136mailbox. 137Sending mail will be disabled by default if 138.Ar mailto 139set to a null string, usually specified in a shell as 140.Li '' 141or 142.Li \*q\*q . 143.It Fl n 144Do not daemonize; run in foreground instead. 145.It Fl s 146Enable special handling of situations when the GMT offset of the local 147timezone changes, such as the switches between the standard time and 148daylight saving time. 149.Pp 150The jobs run during the GMT offset changes time as 151intuitively expected. 152If a job falls into a time interval that disappears 153(for example, during the switch from 154standard time) to daylight saving time or is 155duplicated (for example, during the reverse switch), then it is handled 156in one of two ways: 157.Pp 158The first case is for the jobs that run every at hour of a time interval 159overlapping with the disappearing or duplicated interval. 160In other words, if the job had run within one hour before the GMT offset change 161(and cron was not restarted nor the 162.Xr crontab 5 163changed after that) 164or would run after the change at the next hour. 165They work as always, skip the skipped time or run in the added 166time as usual. 167.Pp 168The second case is for the jobs that run less frequently. 169They are executed exactly once, they are not skipped nor 170executed twice (unless cron is restarted or the user's 171.Xr crontab 5 172is changed during such a time interval). 173If an interval disappears 174due to the GMT offset change, such jobs are 175executed at the same absolute point of time as they would be in the 176old time zone. 177For example, if exactly one hour disappears, this 178point would be during the next hour at the first minute that is 179specified for them in 180.Xr crontab 5 . 181.It Fl o 182Disable the special handling of situations when the GMT offset of the local 183timezone changes, to be compatible with the old (default) behavior. 184If both options 185.Fl o 186and 187.Fl s 188are specified, the option specified last wins. 189.It Fl x Ar debugflag Ns Op , Ns Ar ... 190Enable writing of debugging information to standard output. 191One or more of the following comma separated 192.Ar debugflag 193identifiers must be specified: 194.Pp 195.Bl -tag -width ".Cm proc" -compact 196.It Cm bit 197currently not used 198.It Cm ext 199make the other debug flags more verbose 200.It Cm load 201be verbose when loading crontab files 202.It Cm misc 203be verbose about miscellaneous one-off events 204.It Cm pars 205be verbose about parsing individual crontab lines 206.It Cm proc 207be verbose about the state of the process, including all of its offspring 208.It Cm sch 209be verbose when iterating through the scheduling algorithms 210.It Cm test 211trace through the execution, but do not perform any actions 212.El 213.El 214.Sh FILES 215.Bl -tag -width /usr/local/etc/cron.d -compact 216.It Pa /etc/crontab 217System crontab file 218.It Pa /etc/cron.d 219Directory for optional/modularized system crontab files. 220.It Pa /etc/pam.d/cron 221.Xr pam.conf 5 222configuration file for 223.Nm 224.It Pa /usr/local/etc/cron.d 225Directory for third-party package provided crontab files. 226.It Pa /var/cron/tabs 227Directory for personal crontab files 228.El 229.Sh SEE ALSO 230.Xr crontab 1 , 231.Xr pam 3 , 232.Xr crontab 5 , 233.Xr pam.conf 5 234.Sh AUTHORS 235.An Paul Vixie Aq Mt paul@vix.com 236