Как определить PID моей программы на Python, если запущено более одной программы на Python?

У меня в системе работает две программы на python, скажем, они называются программными x и программа y,

Я хочу получить pid программы y, но нет x для моего сценария bash. Когда используешь pgrep pythonЯ достаю их обоих и не знаю, что есть что.

Любые идеи, как я могу сказать разницу между двумя в сценарии Bash?

1 ответ

Решение

Вы можете сопоставить список аргументов, используя -f переключиться на pgrep (пытаться man pgrep читать больше).

pgrep -f x

должен уступать только программе x а также

pgrep -f y

соответственно только программа y,

В качестве альтернативы, если x а также y не достаточно уникальны и заканчиваются в слишком много строк, вы можете использовать ps а также grep иметь больше возможностей

ps ax | grep 'python x' | grep -v grep | awk '{print $1}'

Это будет

  • перечислить все соответствующие процессы
  • grep для тех с python x в этом. Здесь вам может понадобиться добавить спецификатор пути, например python ./path/to/x
  • удалить саму команду grep из списка совпадающих процессов
  • печатать только первый столбец, который является pid.
Другие вопросы по тегам