Запустить одновременно несколько процесов

chisto_tolyan

Враг народа
Запустить одновременно несколько процесов

Задача такая:
Запустить на серваке несколько(от 10 до 200) скриптов-клонов одновременно.
System(),exec() и пр. запускают скрипты по очереди, а ето не то.
Добавлять в крон 200 задач как-то не очень хочеться)
есть какие-нибудь идеи?)
 

chisto_tolyan

Враг народа
Замечание: If you start a program using this function and want to leave it running in the background, you have to make sure that the output of that program is redirected to a file or some other output stream or else PHP will hang until the execution of the program ends.
Говорила мама - "Читай замечания")))

-~{}~ 05.08.05 15:08:

Хм...
Первый скрипт запускает так:
do{
$run = system('/usr/local/bin/php -f ./script.php');
echo "Starting script #$i\n\r";
$i++;
}while($i<10);
в script.php вообще нет никакого вывода, и тем неменее скрипты запускаются не одновременно, а друг за другом...
туплю...
 

moxnatiy

Новичок
что-то типа того

$run = system('/usr/local/bin/php -f ./script.php >> script.log & 2>/dev/null');
 

chisto_tolyan

Враг народа
из описания exec():
Если вы собираетесь использовать эту функцию в программе, работающей в качестве демона, убедитесь, что стандартный вывод функции направлен в файл или другой поток, в противном случае PHP зависнет вплоть до конца выполнения программы.
так нет у меня никакого вывода ни в скрипте-родителе, ни в запускаемых скриптах.(echo "Starting script #$i\n\r"; убрал)

-~{}~ 05.08.05 15:53:

мохнатый, сенкс)
 

Royal Flash

-=MaestrO=-
Можно так: сгенерить html файл и вывести его в броузер, в которм будут, к примеру, сылки на картинки, типа:

<img src="script.php?data=1">
<img src="script.php?data=2">
<img src="script.php?data=n">

Картинки броузер будет открывать автоматом. Вот у тебя одновременно, и запустятся несколько потоков. Хотя, конечно, не рационально, по отношению к варианту запуска с сервака, зато легко, просто и, главное, работает :)
 
Сверху