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

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

У меня в системе запущены две программы Python, скажем, они называются program xи program y.

Я хочу получить pid программы y, но не xмоего скрипта bash. При использовании pgrep pythonя получаю pid обоих и не знаю, какой из них какой.

Есть идеи, как отличить эти два варианта в скрипте 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.

Связанный контент