[Tutor] why "ifconfig" is alway running?
lei yang
yanglei.fage at gmail.com
Sun Dec 19 12:47:56 CET 2010
#!/usr/bin/env python
import datetime
import subprocess
import sys
import os
import signal
from time import sleep
def host_run(cmd, secs=10):
print("running %s" % cmd)
timeout = datetime.timedelta(seconds=secs)
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT, shell=True)
start = datetime.datetime.now()
while ( proc.poll() is None and (datetime.datetime.now() - start)
< timeout): #not timed out
print proc.stdout.readline() #TODO timestamp?
print "hello,i'm here"
sleep(1)
if 0 == proc.poll():
print("'%s' is program exited" %cmd)
else:
try:
os.kill(proc.pid, signal.SIGINT)
print "Process timeout: '%s'" % cmd
except OSError:
pass
#cmd="ping 128.114.122.2"
cmd="ssh root at 10.0.0.1"
host_run(cmd,10)
if cmd="ssh root at 10.0.0.1"
it never print "hello i'm here" , how can i handle this issue, and I
find my script cant process the "timeout" to kill it.
if cmd="ping 128.114.122.2", no this issue.
Lei
On Sun, Dec 19, 2010 at 4:57 PM, Alan Gauld <alan.gauld at btinternet.com> wrote:
>
> "lei yang" <yanglei.fage at gmail.com> wrote
>
>
> def runForAWhile(cmd, secs=10):
> print("running %s" % cmd)
> timeout = datetime.timedelta(seconds=secs)
> print timeout
> proc = subprocess.Popen(cmd, stdout=subprocess.PIPE,
> stderr=subprocess.STDOUT, shell=True)
> status = proc.poll()
>
> You are still only checking status once outside the while loop.
>
> start = datetime.datetime.now()
> while (status is None and (datetime.datetime.now() - start) <
> timeout): #not timed out
> print proc.stdout.readline() #TODO timestamp?
> #print status
> #print datetime.datetime.now() - start
>
>
>> I see that "status" always "!=0“ why program is NOT exited
>
>
> --
> Alan Gauld
> Author of the Learn to Program web site
> http://www.alan-g.me.uk/
>
>
> _______________________________________________
> Tutor maillist - Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
>
More information about the Tutor
mailing list