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.

_______________________________________________
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Odpovedet emailem