---
name: "cron"
section: "8"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["linux", "freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/cron"
---

# cron(8)

clock daemon

## NAME

**cron** – clock daemon

## SYNOPSIS

**cron** \[**-n**\] \[**-l** *load\_avg*\]

## DESCRIPTION

The **cron** daemon schedules commands to be run at specified dates and times. Commands that are to be run periodically are specified within [crontab(5)](/crontab/5.md) files. Commands that are only to be run once are scheduled via the [at(1)](/at/1.md) and [batch(1)](/batch/1.md) commands. Normally, the **cron** daemon is started from the */etc/rc* command script. Because it can execute commands on a user's behalf, **cron** should be run late in the startup sequence, as close to the time when logins are accepted as possible.

**cron** loads [crontab(5)](/crontab/5.md) and [at(1)](/at/1.md) files when it starts up and also when changes are made via the [crontab(1)](/crontab/1.md) and [at(1)](/at/1.md) commands. Additionally, **cron** checks the modification time on the system crontab file (*/etc/crontab*), the crontab spool (*/var/cron/tabs*), and the at spool (*/var/cron/atjobs*) once a minute. If the modification time has changed, the affected files are reloaded.

Any output produced by a command is sent to the user specified in the MAILTO environment variable as set in the [crontab(5)](/crontab/5.md) file or, if no MAILTO variable is set (or if this is an [at(1)](/at/1.md) or [batch(1)](/batch/1.md) job), to the job's owner. If a command produces no output or if the MAILTO environment variable is set to the empty string, no mail will be sent. The exception to this is [at(1)](/at/1.md) or [batch(1)](/batch/1.md) jobs submitted with the **-m** flag. In this case, mail will be sent even if the job produces no output.

### Daylight Saving Time and other time changes

Local time changes of less than three hours, such as those caused by the start or end of Daylight Saving Time, are handled specially. This only applies to jobs that run at a specific time and jobs that are run with a granularity greater than one hour. Jobs that run more frequently are scheduled normally.

If time has moved forward, those jobs that would have run in the interval that has been skipped will be run immediately. Conversely, if time has moved backward, care is taken to avoid running jobs twice.

Time changes of more than 3 hours are considered to be corrections to the clock or time zone, and the new time is used immediately.

The options are as follows:

- **-l** *load\_avg*

  If the current load average is greater than *load\_avg*, [batch(1)](/batch/1.md) jobs will not be run. The default value is 1.5. To allow [batch(1)](/batch/1.md) jobs to run regardless of the load, a value of 0.0 may be used.

- **-n**

  By default, **cron** will detach from the current tty and become a daemon. The **-n** option disables this behavior and causes it to run in the foreground.

## FILES

- */etc/crontab*

  system crontab file

- */var/cron/atjobs*

  directory containing [at(1)](/at/1.md) jobs

- */var/cron/log*

  cron's log file

- */var/cron/tabs*

  directory containing individual crontab files

- */var/run/cron.sock*

  used by [crontab(1)](/crontab/1.md) to tell **cron** to check for crontab changes immediately

## SEE ALSO

[at(1)](/at/1.md), [crontab(1)](/crontab/1.md), [syslog(3)](/syslog/3.md), [crontab(5)](/crontab/5.md)

## AUTHORS

Paul Vixie ⟨*vixie@isc.org*⟩

## CAVEATS

[crontab(5)](/crontab/5.md) files will be ignored if they do not have the proper file mode. For user crontab files created by [crontab(1)](/crontab/1.md), the mode must be 0600. If the system crontab file is used, */etc/crontab* must not be writable by any user other than root and must not have the execute, set-user-ID, set-group-ID or sticky bits set.
