Stierus
Новичок
Не хочу ждать ответа exec
Добрый день, пытался сейчас написать скрипт, который бы во время свой работы запускал выполнение другого скрипта и не дожидаясь ответа продолжал бы работу дальше. Речь идет о Windows-системе. Все бы ничего, но скрипт доходит до момента выполнения exec, запускает выполняет его, но не идет дальше, а ждет возврата из exec.
вывод:
09.04.2010 11:50:15) запустился скрипт с id = 1
09.04.2010 11:50:16) запустился скрипт с id = 2
09.04.2010 11:50:16) запустился скрипт с id = 3
09.04.2010 11:50:17) запустился скрипт с id = 4
09.04.2010 11:50:17) завершился скрипт с id = 4
09.04.2010 11:50:17) завершился скрипт с id = 3
09.04.2010 11:50:22) завершился скрипт с id = 2
09.04.2010 11:50:22) завершился скрипт с id = 1
а хотелось бы что-то вроде
09.04.2010 11:50:15) запустился скрипт с id = 1
09.04.2010 11:50:16) запустился скрипт с id = 2
09.04.2010 11:50:16) завершился скрипт с id = 1
09.04.2010 11:50:17) запустился скрипт с id = 3
09.04.2010 11:50:17) завершился скрипт с id = 2
09.04.2010 11:50:17) запустился скрипт с id = 4
09.04.2010 11:50:22) завершился скрипт с id = 3
09.04.2010 11:50:22) завершился скрипт с id = 4
Добрый день, пытался сейчас написать скрипт, который бы во время свой работы запускал выполнение другого скрипта и не дожидаясь ответа продолжал бы работу дальше. Речь идет о Windows-системе. Все бы ничего, но скрипт доходит до момента выполнения exec, запускает выполняет его, но не идет дальше, а ждет возврата из exec.
PHP:
<?php
class status{
public static function up(){
$status = status::read();
$status +=1;
$pathinfo = pathinfo(__FILE__);
$path = $pathinfo['dirname'].'\status.txt';
$handle = fopen($path, "w");
@flock ($handle, LOCK_EX);
fwrite($handle, $status);
@flock ($handle, LOCK_UN);
fclose($handle);
}
public static function read(){
//1- уже выполняется
//2- можно запускать
$pathinfo = pathinfo(__FILE__);
$path = $pathinfo['dirname'].'\status.txt';
$handle = fopen($path, "r");
$content = fread($handle, 10);
fclose($handle);
return trim($content);
}
}
class log{
public static function write($text=""){
$pathinfo = pathinfo(__FILE__);
$path = $pathinfo['dirname'].'\test_result.log';
$handle = fopen($path, "a");
$text = $text."\r\n";
@flock ($handle, LOCK_EX);
fwrite($handle, date("d.m.Y H:i:s").') '.$text);
@flock ($handle, LOCK_UN);
fclose($handle);
}
}
$status = status::read();
status::up();
log::write('запустился скрипт с id = '.$status);
if($status < 4){
@exec ('start /b C:\Server\php\php-win -f C:\Server\Apache2\htdocs\long\test.php &');
}
log::write('завершился скрипт с id = '.$status);
?>
09.04.2010 11:50:15) запустился скрипт с id = 1
09.04.2010 11:50:16) запустился скрипт с id = 2
09.04.2010 11:50:16) запустился скрипт с id = 3
09.04.2010 11:50:17) запустился скрипт с id = 4
09.04.2010 11:50:17) завершился скрипт с id = 4
09.04.2010 11:50:17) завершился скрипт с id = 3
09.04.2010 11:50:22) завершился скрипт с id = 2
09.04.2010 11:50:22) завершился скрипт с id = 1
а хотелось бы что-то вроде
09.04.2010 11:50:15) запустился скрипт с id = 1
09.04.2010 11:50:16) запустился скрипт с id = 2
09.04.2010 11:50:16) завершился скрипт с id = 1
09.04.2010 11:50:17) запустился скрипт с id = 3
09.04.2010 11:50:17) завершился скрипт с id = 2
09.04.2010 11:50:17) запустился скрипт с id = 4
09.04.2010 11:50:22) завершился скрипт с id = 3
09.04.2010 11:50:22) завершился скрипт с id = 4
