[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