Advertisement
Guest User

Untitled

a guest
May 4th, 2011
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.06 KB | None | 0 0
  1.  
  2. #!/usr/bin/python
  3.  
  4. import os
  5. import sys
  6. import time
  7. import signal
  8.  
  9.  
  10. spawn_procs = (('/bin/sleep', ('sleep', '10')), ('/bin/sleep', ('sleep', '10')),)
  11. proc_obj = []
  12.  
  13. class Proc:
  14.     def __init__(self, BIN):
  15.         self.BIN = BIN
  16.     def Run(self):
  17.         cpid = os.fork()
  18.         if cpid == 0:
  19.             sys.stderr = os.devnull
  20.             sys.stdout = os.devnull
  21.             sys.stdin = os.devnull
  22.             os.execv(self.BIN[0], self.BIN[1])
  23.         else:
  24.             self.pid = cpid
  25.             return self.pid
  26.     def getPid(self):
  27.         return self.pid
  28.     def kill(self):
  29.         os.kill(self.pid, signal.SIGKILL)
  30.  
  31.  
  32. def ChildDeath(SIG, FRM):
  33.     while True:
  34.         try:
  35.             pid, status = os.wait()
  36.             for each in proc_obj:
  37.                 if each.getPid() == pid:
  38.                     each.Run()
  39.         except:
  40.             break
  41.  
  42. signal.signal(signal.SIGCHLD, ChildDeath)
  43.  
  44. for each in spawn_procs:
  45.     proc_obj.append(Proc(each))
  46.  
  47. for each in proc_obj:
  48.     each.Run()
  49.  
  50.  
  51. while True:
  52.     signal.pause()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement