Wie bestimme ich die PID meines Python-Programms, wenn mehr als ein Python-Programm ausgeführt wird?

3165
user3346931

Auf meinem System laufen zwei Python-Programme, die als Programm xund Programm bezeichnet werden y.

Ich möchte die PID des Programms erhalten y, aber nicht xfür mein Bash-Skript. Bei der Verwendung pgrep pythonbekomme ich die PID von beiden und weiß nicht, welche ist welche.

Irgendwelche Ideen, wie ich den Unterschied zwischen den beiden in einem Bash-Skript verstehe?

2
Ich habe noch keine Stimmrechte. user3346931 vor 9 Jahren 0

1 Antwort auf die Frage

3
Karsten S.

Sie können mit der Argumentliste abgleichen, indem Sie die -fOption to verwenden pgrep( man pgreplesen Sie mehr).

pgrep -f x 

sollte nur Programm xund ergeben

pgrep -f y 

jeweils nur Programm y.

Als Alternative könnten Sie und verwenden, um mehr Optionen zu haben, wenn xund ynicht eindeutig genug sind und in zu vielen Zeilen endenpsgrep

ps ax | grep 'python x' | grep -v grep | awk '' 

Dieser Wille

  • listen Sie alle relevanten Prozesse auf
  • grep für diejenigen mit python xdrin. Hier müssen Sie möglicherweise einen Pfadspezifizierer wie hinzufügenpython ./path/to/x
  • Entfernen Sie den Befehl grep selbst aus der Liste der übereinstimmenden Prozesse
  • Nur die erste Spalte drucken, die die PID ist.