CRON(8)

NAME
cron - clock daemon

SYNOPSIS
cron [-d [level]]

DESCRIPTION
The cron daemon executes tasks that must be repeated every now and then (cron jobs), and tasks that must be run just once (at jobs). It is normally used to run daily or weekly system maintenance scripts. What it needs to run and when is specified in a number of "cron tables", or crontab files for short. These tables are:

    /usr/lib/crontab
    /usr/local/lib/crontab
    /var/lib/crontab
    /var/opt/name/lib/crontab  (Minix-vmd only)
    /usr/spool/crontabs/user

These files follow the usual pattern: One for the standard things, one for local tasks per organization, one for tasks per system, and one crontab per installed package. (Cron reads /usr/lib/packages to find names of installed packages, it doesn't just grab everything in /var/opt.) The last set of files fall outside the normal pattern, they are per user crontabs that one can create with the crontab(1) command. The file names in /usr/spool/crontabs/ are login names of the file owners.

The format of a crontab file is described in crontab(5).

  AT jobs
Cron also takes care of the execution of jobs issued by at(1) that are found in /usr/spool/at/. Cron simply runs the AT job as if there were an "sh at-job" as a cron job at the appropriate time under the user-id of the owner of the script. The script takes care of the rest. See at(1) for the details.

  Job I/O
Standard input, output and error are the same as cron's if the job is started by the system crontabs or from package crontabs. This means that output from system jobs usually ends up on the console and in the log file. Output from personal cron jobs or at jobs are mailed to the owner of the job. No mail is sent if the job is silent.

OPTIONS

[-d[level]]
    Set the debug level, by default 1. Makes cron print info on what it happens to be doing. Level 1 just tells about sleep times and what job is executed, level 2 also shows the internal crontab data on a table load. (With time fields translated to match those of struct tm, see ctime(3).)

  SIGNALS
Cron takes the following actions when sent one of the following signals:

SIGHUP
    Reload the crontab tables if they changed since the last time they were loaded, and reexamine the AT job spool. Used by at(1) and crontab(1).

SIGUSR1
    Increase the debug level by 1.

SIGUSR2
    Turn debugging off.

ENVIRONMENT
Cron sets the environment variables USER, LOGNAME, HOME, and SHELL to the user's login name (2x), home directory, and shell if a job is executed for a given user. The working directory is set to the user's home directory. Everything else is inherited from cron, exactly as cron got it when it started. Note that commands are always passed to /bin/sh, not to the user's shell.

System cron jobs are in principle executed with cron's environment, use -u root or the crontab file /usr/spool/crontabs/root if you want to give root the same treatment as ordinary users.

FILES

/usr/lib/crontab
    Main MINIX 3 crontab file.

/usr/local/lib/crontab
    Local jobs for all systems in an organization.

/var/lib/crontab
    System specific jobs.

/var/opt/name/lib/crontab
    Per package jobs for Minix-vmd.

/usr/lib/packages
    List of installed packages.

/usr/spool/crontabs/user
    Per user jobs.

/usr/spool/at/*
    Jobs issued by at(1).

/usr/run/cron.pid
    Process id of cron when cron is running. Used by at(1) and crontab(1) to send cron a hangup signal.

SEE ALSO
at(1), crontab(1).

NOTES
A job is not reissued until a previous instance of it has exited. The next time to execute is computed from the previous time it ran. If job issuing lags behind on the system time then the next time to run it is computed from the current system time.

BUGS
Cron doesn't like it if the system time is changed. If set forward then cron will react when it next wakes up by running all jobs within the skipped time once or twice before it catches up. Setting the clock backwards makes cron play dead until the system time passes the old time. (Changing the system time is bad idea anyway, and not just because of cron.)

Jobs that fall in the missing hour in a change to Daylight Saving Time are skipped. Nothing is done in the extra hour on the change out of DST.

AUTHOR
Kees J. Bot (kjb@cs.vu.nl)