cron jobs with the same execution time

12,153

Solution 1

For completeness, jobs in e.g. /etc/cron.{hourly,daily,weekly,monthly} are run sequentially. The run-parts script loops over all files in this directory.

02 4 * * * root run-parts /etc/cron.daily

So you can use that in combination with a naming convention (similar to the numbering in /etc/init.d/rc*.d for example) to make sure jobs run sequentially.

Solution 2

The tasks listed in cron will run in parallel, just as processes usually do. Theres no way of being sure which will start first, and no way in cron to make sure task A has complete before task B starts.

Solution 3

They will run in parallel. You can use the following methods to run the processes sequentially.

# Use a semicolon to run command2 after command1 has completed
02 4 * * * /path/to/command1 ; /path/to/command2

# Use two ampersands to run command2 after command1 has completed successfully.
02 4 * * * /path/to/command1 && /path/to/command2

# Use two vertical rules to run command2 after command1 has completed unsuccessfully.
02 4 * * * /path/to/command1 || /path/to/command2

Solution 4

Cron is a daemon (service) that runs continuously; however, it reads crontabs once a minute.

The exact sequence in which jobs are executed will depend on the implementation of your systems' crond.

The loose files that some distributions put inside /etc/cron.d/ are scanned for their cron timer settings, since these files follow the normal crontab(5) syntax.

What order the individual jobs are executed in depends on the schedule you set for them, obviously.

Share:
12,153

Related videos on Youtube

Gabriele
Author by

Gabriele

Updated on September 18, 2022

Comments

  • Gabriele
    Gabriele over 1 year

    Suppose I have several cron jobs set up to run at the same time: do they execute in parallel or just one after another?

    (My case is Debian squeeze with cronjobs put inside /etc/cron.d/mycronjobs).

  • Gabriele
    Gabriele about 12 years
    What if I have several cron jobs within the same file, set to run at the same time?
  • adaptr
    adaptr about 12 years
    The exact sequence in which jobs are executed will depend on the implementation of your systems' crond. man cron for details.
  • Gabriele
    Gabriele about 12 years
    man cron states nothing about that (at least in Debian).
  • Gabriele
    Gabriele about 12 years
    Ok then, since I need to be sure my scripts will run one after another, I think I'll go for a "master script" triggered by a cron job, and call any scripts from within the main script.
  • Nicholas
    Nicholas about 12 years
    You can make sure task A has complete before task B starts by listing them on the same line and separating them with a semicolon.
  • Sirch
    Sirch about 12 years
    That doesnt mean task A has completed successfully. Perhaps you could use a &&, but anything like this should be carried out by a script that is called.
  • Nicholas
    Nicholas about 12 years
    You can use any operands the bash shell supports. Using &&,||, or ; in cron is common practice in my experience.