Ahoj, jakým způsobem by se to dalo zreprodukovat? Výjimku se mi nedaří vyvolat, ani když periodicky zkouším pouštět 'sleep' s různými čekacími dobami:
#!/usr/bin/python import subprocess, random while True: t = str(random.randint(1, 5)) print t process = subprocess.Popen(['sleep', t]) retvalue = process.wait() Ani když vytvořím binárku, která by měla běžet co nejkratší dobu, tj. #include<stdio.h> int main(void){ return 0; } a pak ji zkouším neustále spouštět #!/usr/bin/python import subprocess while True: process = subprocess.Popen(['./pokus']) retvalue = process.wait() tak výjimku nedostanu. Může to záviset na platformě? -- Jan Martinek Šponar Josef wrote: > Skript ověřuje zda jsou splněny podmínky pro spuštění externích programů. > Když jsou splněny podmínky, pokusí se vytvořit nový proces a testuje > návratovou hodnotu. > > V případě, že externí program běží více než cca.5sekund, tak je vše v > pořádku. Ale může se stát, že program běží kratší dobu a "někdy" to projde v > pořádku a "někdy" to skončí popisovanou chybou. > Zkoušel jsem i popen2, výsledek stejný. > > Používam takovouto konstrukci: > try: > process = subprocess.Popen([prog_name]) > retvalue = process.wait() > if retvalue: > print 'program se sice povedlo pustit, ale neco selhalo' > else: > print 'vse OK' > except OSError, error: > print 'nepovedlo se ho pustit' > print error > > > > > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Petr Nesládek > Sent: Thursday, August 23, 2007 11:42 PM > To: Konference PyCZ > Subject: Re: [python] subprocess > > >> ------------ Původní zpráva ------------ >> Od: Šponar Josef <[EMAIL PROTECTED]> >> Předmět: [python] subprocess >> Datum: 23.8.2007 13:18:06 >> ---------------------------------------- >> >> Ahoj, nevíte někdo jak odstranit tuto podivnost při používání >> subprocess.wait(). >> PYTHON = 2.4 >> System = SunOS >> >> prog=SUB.Popen(cmd, stderr=SUB.PIPE, stdout=SUB.PIPE) >> retval=prog.wait() >> >> Traceback (most recent call last): >> File "av_rizeni.py", line 283, in ? >> main() >> File "av_rizeni.py", line 180, in main >> retval=prog.wait() >> File "/usr/local/lib/python2.4/subprocess.py", line 1007, in wait >> pid, sts = os.waitpid(self.pid, 0) >> OSError: [Errno 10] No child processes >> _______________________________________________ >> Python mailing list >> Python@py.cz >> http://www.py.cz/mailman/listinfo/python >> > > Ahoj, možná sezeptám hloupě, ale ten subproces se rozběhne, nebo ne ? > > Případně co se vůbec děje do momentu než zkončí chybou ? > > Petr > > > > _______________________________________________ > 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 _______________________________________________ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python