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

2

Eu tenho dois programas python em execução no meu sistema, dizem que eles são chamados de programa x e programa y .

Eu quero pegar o pid do programa y , mas não x do meu script bash. Ao usar pgrep python , recebo o pid de ambos e não sei qual é qual.

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

    
por user3346931 16.07.2015 / 22:30

1 resposta

3

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

pgrep -f x

deve render apenas o programa x e

pgrep -f y

respectivamente, apenas programa y .

Como alternativa, se x e y não forem exclusivos o suficiente e terminarem em muitas linhas, você poderá usar ps e grep para ter mais opções

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

Isso vai

  • listar todos os processos relevantes
  • grep para aqueles com python x . Aqui você pode precisar adicionar um especificador de caminho como python ./path/to/x
  • remova o próprio comando grep da lista de processos correspondentes
  • imprime somente a primeira coluna, que é o pid.
por 16.07.2015 / 22:37