Я только что создал тестовое задание cron, которое выполняется каждую минуту:
#!/bin/bash
echo "123" >> /home/user/test-file
sleep 100
echo "234" >> /home/user/test-file
Так что я видел наложение в htop
. Я имею в виду, что были периоды времени, когда я видел два процесса, запущенных одновременно. 123
было отражено в начале минуты, а 234
- в 40 секунд следующей минуты (из-за sleep 100
). В течение 40 секунд до начала следующей минуты был только один процесс.
Это означает, что cron запускает задания и не ждет их завершения.
Я постараюсь представить это графически:
0 minute 00 seconds 123 <----first execution
1 minute 00 seconds 123 <----second execution
1 minute 40 seconds 234 <----first execution
2 minute 00 seconds 123 <----third execution
2 minute 40 seconds 234 <----second execution
3 minute 00 seconds 123 <----fourth execution
3 minute 40 seconds 234 <----third execution
По крайней мере, это верно для заданий в /etc/crontab
с vixie-cron
на свежем обновленном Gentoo.
Как обнаружил Пол, вещи в cron.daily
выполняются по-другому.