Como determino o PID do meu programa python se houver mais de um programa python em execução?

Como determino o PID do meu programa python se houver mais de um programa python em execução?

Eu tenho dois programas python em execução no meu sistema, digamos que eles são chamados program xe program y.

Quero obter o pid de program y, mas não xpara meu script bash. Ao usar pgrep python, recebo o pid de ambos e não sei qual é qual.

Alguma idéia de como posso saber a diferença entre os dois em um script bash?

Responder1

Você pode comparar com a lista de argumentos usando a -fopção para pgrep(tente man pgrepler mais).

pgrep -f x

deve render apenas programa xe

pgrep -f y

respectivamente apenas programa y.

Como alternativa, se xe ynão forem exclusivos o suficiente e terminarem em muitas linhas, você poderá usar pse greppara ter mais opções

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

Isso vai

  • liste todos os processos relevantes
  • grep para aqueles que estão python xnele. Aqui você pode precisar adicionar um especificador de caminho comopython ./path/to/x
  • remova o próprio comando grep da lista de processos correspondentes
  • imprima apenas a primeira coluna, que é o pid.

informação relacionada