[python] multiprocess a subprocess

Petr Messner petr.messner na gmail.com
Sobota Duben 17 00:22:39 CEST 2010


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.

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.

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



Další informace o konferenci Python