По умолчанию агенты на кроне запускаются раз в минуту.
Для запуска раз в секунду используется скрипт-прослойка.
Утилиты nice и ionice устанавливаем отдельно под рутом, если не установлены. Утилиты используются для запуска агентов на кроне с более низким приоритетом, чем другие процессы на сервере.
Для запуска раз в секунду используется скрипт-прослойка.
# Содержимое command-every-second.sh #!/bin/bash command=$@ # Пробелы и косые в команде заменяются на нижние подчеркивания. no_spaces=`echo $command | sed -e 's/\s/_/g' -e 's|/|_|g'` # Имя файла для блокировки на время выполнения основной команды. lockfile=/tmp/$no_spaces.lock # Раз в секунду пытаемся поставить блокировку на команду и выполнить. for i in {1..60} do /usr/bin/flock -n $lockfile $command /bin/sleep 1 done rm $lockfile # Пример команды для крона. crontab -e * * * * * nice -n 1 ionice -c2 -n4 /var/www/www-root/data/command-every-second.sh /opt/php81/bin/php -f /var/www/www-root/data/www/example.ru/bitrix/php_interface/cron_events.php >/dev/null 2>&1 |
Утилиты nice и ionice устанавливаем отдельно под рутом, если не установлены. Утилиты используются для запуска агентов на кроне с более низким приоритетом, чем другие процессы на сервере.