Фоновый режим

  • Автор темы Автор темы DiZe
  • Дата начала Дата начала

DiZe

Новичок
Фоновый режим

Запускаю скрипт2 через скрипт1:
PHP:
passthru("/usr/local/bin/php -f /home/............./script2.php");

1) Через что надо запускать? exec passthru shell_exec или что-то другое?
2) После запуска второго скрипта, апач перестает выдавать другие страницы. Почему, может кто знает?

второй скрипт:
PHP:
while(true){
...
}

Работает как надо
 
мне надо чтобы второй скрипт всегда в фоне висел. Работы ему найдётся, крон не катит.
 
2) После запуска второго скрипта, апач перестает выдавать другие страницы. Почему, может кто знает?
стоит бесконечный цикл а что в нем? видимо нагрузка огромна так что апач просто "висит"
 
А разве апач тут работает? Нагрузка не особо велика. Без цикла отрабатывается примерно за 0.01. Да даже если оставить только цикл, то ничего не изменится.

Может там ограничения на количество процессов? Такое вообще бывает?
 
Спасибо за ссылку. Но второй скрипт инклудид Битрикс и из Битрикса сыплются предупреждения, ничего серьёзного.

К тому же, если в цикле поставить условие выхода, то после завершения работы скрипта всё опять ок - страницы начинают грузится.
 
Таймаут между итерациями while?

-~{}~ 06.04.07 11:43:

+ неплохо бы проверять, не запущен ли уже скрипт2
 
проверка есть, скрипт точно один. Между итерациями ставил sleep(1) но и это не помогает :(
 
После запуска второго скрипта, апач перестает выдавать другие страницы
Может, это эксплорер перестает запрашивать другие страницы, пока эта "грузится"?
 
Эту можно вообще закрыть - скрипт работает не зависимо от клиента
 
Кусок документации...
...Если вы собираетесь использовать эту функцию в программе, работающей в качестве демона, убедитесь, что стандартный вывод функции направлен в файл или другой поток, в противном случае PHP зависнет вплоть до конца выполнения программы.
Это не оно?
 
скрипт инклудид Битрикс и из Битрикса сыплются предупреждения, ничего серьёзного.
+1, так мелочи - всего-то сообщения об ошибках, которые скидываются в файловую систему + тратят процессорное время
 
Не в битриксе дело. Не может он ничего ТАК нагружать. К тому же пробовал пускать чистый скрипт без всяких битриксов.

PHP:
<?
ignore_user_abort(true);
set_time_limit(0);
while (true) {
	if(file_exists('stop.txt')){
	die('stopped');		
	}
	sleep(1);
};
?>

Насчёт вывода в файл, это да, спасибо. Только не особо помогло.

-~{}~ 06.04.07 20:02:

Действительно помогло!
ksnk, спасибо )
 
Сверху