my script is

#!/usr/bin/env python
import datetime
import subprocess
import sys
import os
import signal
from time import sleep

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()
  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
  if 0 == status:
      print("'%s' is program exited" %cmd)
  else:
      try:
          os.kill(proc.pid, signal.SIGINT)
      print "Process timeout: '%s'" % cmd
      except OSError:
          pass
cmd="ifconfig"
runForAWhile(cmd,10)

why it print many "None" in 10 second. which means "ifconfig" is
running in 10sec, why, what's wrong withi my script,
I just want to let my programe running, if it's timeout(10sec), kill it

Lei
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to