В дополнение к другим ответам, особенно по ссылке, опубликованной @soulcake: если вы запланируете длительную команду с слишком коротким интервалом, cron с удовольствием выполнит вторую перед завершением первой (если в команде не реализован какой-либо мьютекс) ,
Это часто замедляет исходную команду еще больше, приводя к тому, что другой экземпляр запускается до завершения предыдущих и т. Д. Или это может быть нежелательно по другим причинам.
Общий способ предотвратить это - выполнить команду с защитой, которая гарантирует, что предыдущая команда не выполняется. Например:
10 * * * * pgrep my_slow_command >/dev/null || /usr/local/bin/my_slow_command
Убедитесь, что pgrep совпадает с именем команды при запуске, например, скрипты python имеют имя python в качестве имени исполняемого файла, что, вероятно, недостаточно конкретно, и вам также нужно будет сопоставить имя скрипта python.
10 * * * * pgrep -f my_script.py || /usr/local/bin/my_script.py
(хотя pgrep без опции '-f' соответствует именам скриптов bash)
Если по какой-то причине вы не можете использовать pgrep:
10 * * * * ps ax | grep [m]y_command || /usr/local/bin/my_command
Скобки используются, чтобы избежать совпадения с самой командой grep.