4

У меня есть этот PHP-скрипт, который мне нужно запустить на общем веб-хостинге. Я создал задание cron, которое выполняет скрипт sh. Команда для cron была:

/bin/sh /home/user/script.sh

Итак, я предполагаю, что это Bourne Shell (или что-то совместимое). Сам скрипт был:

#!/bin/sh
cd /home/user/public_html/folder/
#updating DB
php -q ./run_interactive_job.php batch_control_files/updateDB
echo Updated DB results

Мой вопрос:
Могу ли я добавить приоритеты Nice в команду php? Или мне нужно добавить его в скрипт по команде cron. Какой из них больше работает?

nice 10 php -q ./run_interactive_job.php batch_control_files/updateDB

Будет ли это успешно работать с более низким приоритетом.

PS: По сути, этот скрипт перегружал сервер раньше, когда я запускал его через браузер, и это влияло на apache на этом сервере, в результате чего мои хосты блокировали файл. Я неоднократно просил их разблокировать, чтобы проверить его с различными параметрами. И теперь я пытаюсь запустить его через cron с более низким приоритетом в надежде, что это не повлияет на apache. Но я не хочу, чтобы это снова создавало проблемы, поэтому я пытаюсь использовать NICE

ОБНОВЛЕНИЕ: я использовал командный файл, как показано там. Я использовал команду nice перед php внутри командного файла. Единственная разница заключается в следующем:

nice -n 10 php -q ./run_interactive_job.php batch_control_files/updateDB

Я добавил команды для запуска дополнительных php-скриптов с таким же приятным свойством. Они все отлично работали.

СПАСИБО ВСЕМ ЗА ВХОД @ sm4rk0 ответ решает мои проблемы

1 ответ1

4

Оба метода должны работать, но, по-моему, лучше вставить nice сценарий, как вы это делали в своем примере. После проверки с man nice я обнаружил, что рассматриваемый пример имеет неправильный синтаксис. Правильный синтаксис будет:

nice -n 10 command

Разновидности варьируются от -20 (наиболее благоприятный график) до 19 (наименее благоприятный).

И, как сказал тердон, 10 является значением по умолчанию, поэтому «-n 10» можно опустить.

Примечание. Несмотря на то, что это снизит приоритет процесса, утилита nice не заставит его вызывать меньше нагрузки на процессор Таким образом, если единственная причина для беспокойства не состоит в том, чтобы "задушить" apache , то этот метод в порядке. Но если ваши хосты дадут вам некоторую квоту процессорного времени, это не сильно поможет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .