PID внешнего процесса, запущенного в PHP

Мне нужно получить PID процесса, выполняемого в PHP. Обзор моей проблемы следующий:

У меня есть скрипт, который выполняет две внешние программы (процесс в MatLab). Вторые программы должны ждать вывода первой, и мне нужен PID этого процесса, чтобы убить их, если пользователь этого захочет.

Сначала я использовал exec(), но я не знаю, как получить pid. Также я использовал proc_open(), но мне нужно, чтобы первый вызов блокировал скрипт (ввод для второго скрипта будет храниться во временном каталоге, это изображение) до тех пор, пока не завершится первый процесс.

Моя среда находится в Windows. Заранее спасибо.


person alexGrac    schedule 04.09.2014    source источник
comment
The second programs must wait for the output of the first one. Это поведение по умолчанию.   -  person hek2mgl    schedule 04.09.2014


Ответы (1)


Вы можете получить PID процесса с помощью WMIC. Убедитесь, что запущен только один (уникальный) процесс с таким именем:

exec('wmic process where name="program.exe" get ProcessID 2>&1', $output);

$pid = $output[1];

Замените program.exe именем вашего соответствующего процесса.

person silkfire    schedule 04.09.2014