виснет php

12
Dimid
На сайте с 03.12.2006
Offline
74
1247

есть скрипт, который запускается каждые 10 мин через крон командой:

cd /path/; php script.php

скрипт функцию выполняет, но php зависает и вечно висит в процессах загружая одно ядро на 100%

с каждым запуском создаётся новый процесс и тд. в результате создаётся не реальная нагрузка на сервер

в php.ini max_execution_time=60

ос centos 5

php 5.3

M
На сайте с 16.09.2009
Offline
278
#1

man limits.conf

Отредактируйте /etc/security/limits.conf - настройте через PAM лимиты для пользователя, от которого работает данный кронтаб (надеюсь, не root). Наиболее интересны Вам должны быть: rss, cpu, nproc, nice.

PS: И, конечно, "программисту" скрипта нужно что-то узнать о лок-файлах. Более чем вероятно, что запуск нескольких скриптов - "логикой" их работы вовсе не предусмотрен.

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
izbushka
На сайте с 08.06.2007
Offline
110
#2

Если запускать скрипт из командной строки то php.ini не обязательно будет читаться (или не обязаельно будет читаться нужный)

можете сделать установить max_execution_time через ini_set

retexica
На сайте с 28.07.2011
Offline
9
#3

Если скрипт не просто висит в памяти, но и грузит CPU на 100%, то он явно что то делает еще. Просто при запуске в консоли за сколько выполняется ваш скрипт?

iHead
На сайте с 25.04.2008
Offline
137
#4

делайте отладку кода, например, методом половинного деления или подробным логированием происходящего.

Рекомендуемый хостинг партнер 1С-Битрикс (https://www.ihead.ru/bitrix/), PHP-хостинг (https://www.ihead.ru/php/), доверенный партнер RU-CENTER (https://www.ihead.ru/news/573.html), официальный представитель REG.RU в Кирове (https://www.ihead.ru/news/851.html)
Dimid
На сайте с 03.12.2006
Offline
74
#5

скрипт через веб выполняется моментально. подобным способом запускаю, так как не хватает прав

M
На сайте с 16.09.2009
Offline
278
#6
Dimid:
скрипт через веб выполняется моментально. подобным способом запускаю, так как не хватает прав

Установите strace - посмотрите что делает скрипт.

А чем не вариант запустить "через web": wget -q http://site.ru/script.php ?

retexica
На сайте с 28.07.2011
Offline
9
#7
Dimid:
скрипт через веб выполняется моментально. подобным способом запускаю, так как не хватает прав

Вы ответили на свой вопрос, путь решения вам верно предложили:

myhand:
Установите strace - посмотрите что делает скрипт.

А чем не вариант запустить "через web": wget -q http://site.ru/script.php ?

От себя могу так же посоветовать lynx, если по каким то причинам нет wget.

Dimid
На сайте с 03.12.2006
Offline
74
#8

прописал в скрипте

ini_set('max_execution_time',60);

помогло

а почему php не видит эту настройку из своего конфига?

M
На сайте с 16.09.2009
Offline
278
#9
Dimid:
прописал в скрипте
ini_set('max_execution_time',60);
помогло

Сомневаюсь... Раз, по Вашему описанию - скрипт "из веб" выполняется моментально.

Dimid:
а почему php не видит эту настройку из своего конфига?

Наверно, потому что это не его конфиг? Ы?

Dimid
На сайте с 03.12.2006
Offline
74
#10

phpinfo() показывает где лежит конфиг и изменения в нём применяются

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий