[python] multiprocess a subprocess

Tomas Pelka tompelka na gmail.com
Sobota Duben 17 09:55:19 CEST 2010


Petr Messner wrote:
> Předpokládám, že místo foo() je myšleno spouštění webového serveru přes Popen z bar(). Mě tento kód funguje, příkaz se spustí. Asi bude chyba někde jinde. Často pomůže podívat se přes strace, co to vlastně dělá (myslím příkaz strace v Linuxu nebo něco podobného v jiných OS). Raději sem ale pošlete větší kus zdrojového kódu, nebo vysvětlete, o co se snažíte, webový server se v Pythonu dá spustit i jednoduššími způsoby.
> 

No spoustim web2py, s tim ze je to zbytecne slozite souhlasim.

> Jinak by bylo pěkné k ukázce kódu doplnit i příslušné importy, aby se kód dal co nejsnáze spustit a vyzkoušet.

import os, pwd, sys
from multiprocessing import Process, Manager, Queue
from subprocess import Popen, PIPE

Napadlo me jestli nebude problem s p.communicate() ale v tom problem nebyl.

> 
> PM
> 
> On 16.4.2010, at 23:56, Tomas Pelka wrote:
> 
>> Zdravim,
>>
>> mam maly problem, ktery jiz resim cely vecer. Pro znale bude reseni
>> jiste otazkou chvilky. Pokousim se o nasledujici:
>>
>>
>> def foo(q):
>>    print os.getuid()
>>    while True:
>>        pass
>>
>> def bar():
>>    os.setuid(NEJAKE_EXISTUJICI_UID)
>>    if not CESTA_K_HOME in sys.path:
>>        sys.path.append(CESTA_K_HOME)
>>    os.chdir(CESTA_K_HOME)
>>    cmd = "prikaz spouztejici web server"
>>    p = Popen(cmd, shell=True, stdout=PIPE)
>>    p.communicate()
>>
>>
>> if __name__ == "__main__":
>>    # fronta neni prozatim dulezita
>>    workQueue = Queue()
>>
>>    bar_proc = Process(target=bar, args=())
>>    foo_proc = Process(target=foo, args=(workQueue,))
>>
>>    foo_proc.start()
>>    bar_proc.start()
>>
>>    foo_proc.join()
>>    bar_proc.join()
>>
>>
>> Problem je ten ze webovy server z foo() nebezi i kdyz python rika
>> (foo_proc.is_alive()), ze proces bezi.
>>
>> Kde delam neustale chybu?
>>
>> Diky za odpovedi.
>>
>> -- 
>> Tom
>>
>> _______________________________________________
>> Python mailing list
>> Python na py.cz
>> http://www.py.cz/mailman/listinfo/python
> 
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python


-- 
Tom


Další informace o konferenci Python