[Tutor] interacting with stderr

Bo Morris crushed26 at gmail.com
Sun Aug 31 00:31:43 CEST 2014


Here is my working code. It works great in the lab, but I still need to
test it on a live system. I also need to add the email notifications to it,
but I purposely left them out for now; I will also adjust the sleep time to
a more appropriate amount. Anyone see any issues with it or ways to make it
better?

  #!/usr/bin/env python

import subprocess
from subprocess import PIPE
import time
import psutil
import sys

count = 0
restart = 0

def kill_proc(process1, process2):
    i = psutil.Popen(["ps", "cax"], stdout=PIPE)
    out, err = i.communicate()
    for proc in psutil.process_iter():
        if proc.name == process1 and process2:
            proc.kill()

while True:
    while count < 15:
        count += 1
        kill_proc("bmdplay", "avconv")
        print "Starting the script", count
        time.sleep(2)
        p = subprocess.Popen("/Downloads/bmdtools/test_loop.sh",
shell=True, stderr=PIPE)
        for line in p.stderr:
            print line
            if "Segmentation" in line:
                kill_proc("bmdplay", "avconv")
                while restart < 3:
                    restart += 1
                    time.sleep(2)
                    p =
subprocess.Popen("/Downloads/bmdtools/test_loop.sh", shell=True,
stderr=PIPE)
                    for line in p.stderr:
                        print line
                        if restart == 3:
                        # send email saying so
                            sys.exit()
            if "storing 0x" in line:
                kill_proc("bmdplay", "avconv")
                while restart < 3:
                    restart += 1
                    sleep.time(2)
                    p =
subprocess.Popen("/Downloads/bmdtools/test_loop.sh", shell=True,
stderr=PIPE)
                    for line in p.stderr:
                        print line
                    if restart == 3:
                        # send email saying so
                        sys.exit()
        if count == 10:
            print "Going to sleep, will try again in..."
            #send email saying so
            time.sleep(2)
        if count == 15:
            # send email saying so
            print "Gave up"
            break
    break
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20140830/6e8446e2/attachment.html>


More information about the Tutor mailing list