¿Cómo puedo determinar el PID de mi programa Python si hay más de un programa Python ejecutándose?

¿Cómo puedo determinar el PID de mi programa Python si hay más de un programa Python ejecutándose?

Tengo dos programas de Python ejecutándose en mi sistema, digamos que se llaman programa xy programa y.

Quiero obtener el pid del programa y, pero no xde mi script bash. Cuando lo uso pgrep python, obtengo el pid de ambos y no sé cuál es cuál.

¿Alguna idea de cómo puedo diferenciar entre los dos en un script bash?

Respuesta1

Puede hacer coincidir la lista de argumentos usando el -finterruptor para pgrep(intente man pgrepleer más).

pgrep -f x

debería producir sólo programa xy

pgrep -f y

respectivamente único programa y.

Como alternativa, si xy yno son lo suficientemente únicos y terminan en demasiadas filas, puedes usar psy greppara tener más opciones.

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

Esta voluntad

  • enumerar todos los procesos relevantes
  • grep para los que están python xen él. Aquí es posible que necesites agregar un especificador de ruta comopython ./path/to/x
  • eliminar el comando grep de la lista de procesos coincidentes
  • Imprime solo la primera columna, que es el pid.

información relacionada