Dieser Beitrag ist schon sehr alt, und die Infos hier sind sicherlich hoffnungslos veraltet…
PID von einem Python-Script abfragen
Wenn man ein Pythonscript laufen hat, kann man es nicht einfach per
killall SCRIPTNAME
abwürgen. Man benötigt die PID. Doch wie bekommt man diese? Speziell gefragt, wie bekommt man diese PID in einem anderen Script, welches Prüfen soll, ob ein bestimmter Prozess läuft oder nicht?
Ich hab hier ein kleines Python-Script geschrieben, welches die PID eines laufenden Scripts zurückgibt. Das Script habe ich “get.PID.py
” genannt, und es hat folgenden (von Nutzer blubb modifizierten) Inhalt:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os,sys
def getPID(myprocess):
cmd = "ps ax|grep -v grep | grep %s" % (myprocess)
output = ""
f=os.popen(cmd)
for i in f.readlines():
output = output + i
if output == "":
#-- Kein Prozess gefunden
return("NOPID")
else:
#-- Prozess existiert, suche PID raus
begin = 0
y = True
while y==True:
if output[begin] == " ":
# Leerzeichen gefunden, PID beginnt noch nicht
begin += 1
else:
# Kein Leerzeichen gefunden, PID beginnt hier
y = False
end = begin
y = True
while y==True:
if output[end] == " ":
# Leerzeichen gefunden, PID endet hier, breche ab
y= False
else:
end += 1
return(output[begin:end])
try:
searchfor = sys.argv[1]
except:
print("USAGE: get.PID.py PROCESS")
sys.exit(1)
print(getPID(searchfor))
Jetzt kann das Script mit get.PID.py PROZESSNAME
aufgerufen werden. Sollte der gesuchte Prozess nicht existieren, wirft die Funktion den String “NOPID” zurück.
Hoffe, dass ich dem ein oder anderen damit helfen konnte (nochmals dank an “blubb” fürs Modifizieren). Falls euch das Script zu umständlich vorkommt, schreibt mir nen Kommentar…