Я начал процесс в фоновом режиме на сервере Apache Windows.Выполнение и получение pid фонового процесса в PHP на Windows
index.php после этого:
<?php
$cmd = "C:/xampp/php/php.exe -f test.php";
pclose(popen("start /B ". $cmd, "r"));
echo "OK";
?>
test.php после этого:
<?php
sleep(5);
file_put_contents("1.txt", date("Y-m-d H:i:s"));
?>
В то время, я хочу, чтобы получить идентификатор процесса, который php -f test.php
. Когда я начинаю index.php, я вижу новый процесс php.exe
на выходе командной строки tasklist
. Как я могу получить pid для этого фонового процесса.
Спасибо.
'$ PID = getmypid();' http://php.net/manual/en/function.getmypid.php Heed предупреждение, хотя: ** Внимание Идентификаторы процессов не уникальны, поэтому они являются слабым источником энтропии. Мы рекомендуем не полагаться на pids в зависимых от безопасности контекстах. ** – icecub
Спасибо за вашу помощь. но он возвращает pid httpd.exe. Я хочу получить pid php.exe. –
Я не знаю, что именно вы делаете, но имейте в виду, что это команда CLI. Значение этого не будет работать, если вы запустите его в браузере. – icecub