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@py.cz
http://www.py.cz/mailman/listinfo/python
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python
--
Tom
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python