[python] Jak získat název procesu když znám PID procesu

"Ing. Vladislav Ludík" vlada na ludik.cz
Sobota Březen 10 19:12:55 CET 2012


Zdravím všechny.

Spouštím pythonovský program.py (pod Linuxem) a chci zajistit jeho 
stabilní chod i v nepředvídatelných režimech.
Zatím to dělám tak, že program o sobě dává vědět a jiný program check.py 
to kontroluje.
program.py je trvale spuštěn. Pokud check.py nedostane správnou odpověď 
a včas, nastartuje jej znovu.
Při testech jsem zjistil, že občas po nepředpokládané chybě program 
neodpoví jak má, popřípadě včas.

Abych vyloučil dvojí spuštění, hlídám jeho název a PID procesu:

_prg = os.path.basename(sys.argv[0])   # název
_pid = os.getpid()                                 # PID

Potřebuji zjistit podle názvu a PIDu, zda je spuštěný a existuje.
Zatím to dělám přes subprocess, příkaz ps -d

cmd = ["ps", "-d"]
proces = subprocess.Popen(cmd, stdout = subprocess.PIPE)
proces.wait()
out = proces.stdout.read()

out pak čtu a hledám potřebné.

Mimochodem linuxovský příkaz ps -d | grep program.py, který by 
vyfiltroval jen to co hledám, funguje pod linuxem, ale přes subprocess ne.
Hlásí:  ERROR: Garbage option.

Takže k mému konkrétnímu dotazu:

existuje nějaký os příkaz nalezení PID podle jména programu ?

Díky

V.L.



Další informace o konferenci Python