tests/killdaemons.py
changeset 32677 f840b2621cce
parent 29811 4ddfb730789d
child 32857 d644e859d9da
equal deleted inserted replaced
32676:4c3d9ee87382 32677:f840b2621cce
    76 def killdaemons(pidfile, tryhard=True, remove=False, logfn=None):
    76 def killdaemons(pidfile, tryhard=True, remove=False, logfn=None):
    77     if not logfn:
    77     if not logfn:
    78         logfn = lambda s: s
    78         logfn = lambda s: s
    79     # Kill off any leftover daemon processes
    79     # Kill off any leftover daemon processes
    80     try:
    80     try:
    81         fp = open(pidfile)
    81         pids = []
    82         for line in fp:
    82         with open(pidfile) as fp:
    83             try:
    83             for line in fp:
    84                 pid = int(line)
    84                 try:
    85                 if pid <= 0:
    85                     pid = int(line)
    86                     raise ValueError
    86                     if pid <= 0:
    87             except ValueError:
    87                         raise ValueError
    88                 logfn('# Not killing daemon process %s - invalid pid'
    88                 except ValueError:
    89                       % line.rstrip())
    89                     logfn('# Not killing daemon process %s - invalid pid'
    90                 continue
    90                           % line.rstrip())
       
    91                     continue
       
    92                 pids.append(pid)
       
    93         for pid in pids:
    91             kill(pid, logfn, tryhard)
    94             kill(pid, logfn, tryhard)
    92         fp.close()
       
    93         if remove:
    95         if remove:
    94             os.unlink(pidfile)
    96             os.unlink(pidfile)
    95     except IOError:
    97     except IOError:
    96         pass
    98         pass
    97 
    99