Как я могу найти pid моей работы PHP в Linux? - PullRequest
0 голосов
/ 10 февраля 2019

Я создал несколько служб PHP (CLI).Чтобы получить их PID из другого процесса наилучшим образом.

Однако я не могу найти это решение оптимальным ..

Ответы [ 3 ]

0 голосов
/ 10 февраля 2019

Не grep выход ps.Вместо этого используйте pgrep.Если у вас запущен только один PHP-процесс, вы можете найти процессы по его имени следующим образом:

pgrep php;

, и он вернет что-то вроде 49282.

Однако, поскольку вы указаличто есть несколько запущенных, вы можете различить их, используя pgrep --full.Например, если вы запускаете 2 команды php foo.php и php bar.php и хотите, чтобы PID процесса выполнялся foo.php:

pgrep --full '^php foo\.php$'

, тогда как ^ и $ могутне обязательно во всех случаях, они предотвращают ложноположительные совпадения.Для получения дополнительной информации о регулярных выражениях см. эту grep -специфическую документацию .

0 голосов
/ 10 февраля 2019

Лучший способ - запомнить PID после создания подпроцессов.Все варианты, анализирующие полный список процессов, могут привести к неправильным результатам.

Другое решение состоит в том, чтобы найти / запомнить процесс, который запустил подпроцессы и выполнить поиск дочерних процессов.

В любом случае, вы дали нам меньше деталей, чтобы помочь более конкретным.

0 голосов
/ 10 февраля 2019

Если я не ошибаюсь, следующий код будет работать для вас.

ps aux | grep php
...