Comment déterminer le PID de mon programme python s'il y a plus d'un programme en cours d'exécution?

3

J'ai deux programmes python en cours d'exécution sur mon système, ils s'appellent programme xet programme y.

Je veux obtenir le pid du programme y, mais pas xpour mon script bash. Lors de l'utilisation pgrep python, je reçois le pid des deux et je ne sais pas lequel est lequel.

Des idées comment je fais la différence entre les deux dans un script bash?

utilisateur3346931
la source
Je n'ai pas encore le droit de vote.
user3346931

Réponses:

4

Vous pouvez faire correspondre la liste d'arguments en utilisant le -fcommutateur à pgrep(essayer man pgrepd'en lire plus).

pgrep -f x

devrait donner que le programme xet

pgrep -f y

respectivement seul programme y.

Au lieu de cela, si xet yne sont pas assez uniques et se terminent par trop de lignes, vous pouvez utiliser pset grepavoir plus d'options

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

Cette volonté

  • lister tous les processus pertinents
  • grep pour ceux avec python xdedans. Ici, vous devrez peut-être ajouter un spécificateur de chemin commepython ./path/to/x
  • supprimer la commande grep elle-même de la liste des processus correspondants
  • affiche uniquement la première colonne, qui est le pid.
Karsten S.
la source