Здрасти всем!
Написал скрипт php, который запускает 2 процесса через proc_open()
Мне нужно определить PID дочерних процессов(B и C). Казалось бы простая задача
$info = proc_get_status($process);
$info['pid']
Но возвращает пид 24326, а не 24334, потому что запускается какая то прокладка sh. Для чего она нужна и зачем запускается - вопрос?
Я записал небольшую ф-ию, которая через команду pgrep -P pid, определяет самого последнего потомка, но бывает иногда что она его не видит и определяет пид sh(вместо B). Возможно ли, что после proc_open() успевает запуститься только sh, а скрипт B не успевает?
php(24311)─┬─sh(24326)───(B)ffmpeg(24334)
└─sh(24327)───(C)php(24327)