Здрасти! Вопрос по PHP
$process = proc_open("cmd1 | cmd2", $descriptorspec, $pipes, $cwd, $env);
$proc_info = proc_get_status($process);
echo $proc_info['pid'];
//out 28554
ps -ax | grep 28554
27213 pts/1 S+ 0:00 sh -c cmd1 | cmd2
Выдается пид sh - зачем он мне? Мне нужно узнать пид процесса, который я запустил, я не оболочки. А в идеале конечно нужно получить пид cmd2.
Как быть?
Через утилиту ps было установлено, что
PID, который вернул php = 28554
pid cmd1 = 28555
pid cmd2 = 28556
Есть некоторая закономерность. Правильно ли я поступлю, если буду считать pid_cmd1 = pid+1, pid_cmd2 = pid_cmd1 + 1?
Т.е. процессы друг за другом стартуют и если ли вероятность, что между запуском cmd1 и cmd2 запуститься внешний процесс и у pid_cmd2 уже не станет pid_cmd1 + 1?