Как определить 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.