Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- import os
- import sys
- import time
- import signal
- spawn_procs = (('/bin/sleep', ('sleep', '10')), ('/bin/sleep', ('sleep', '10')),)
- proc_obj = []
- class Proc:
- def __init__(self, BIN):
- self.BIN = BIN
- def Run(self):
- cpid = os.fork()
- if cpid == 0:
- sys.stderr = os.devnull
- sys.stdout = os.devnull
- sys.stdin = os.devnull
- os.execv(self.BIN[0], self.BIN[1])
- else:
- self.pid = cpid
- return self.pid
- def getPid(self):
- return self.pid
- def kill(self):
- os.kill(self.pid, signal.SIGKILL)
- def ChildDeath(SIG, FRM):
- while True:
- try:
- pid, status = os.wait()
- for each in proc_obj:
- if each.getPid() == pid:
- each.Run()
- except:
- break
- signal.signal(signal.SIGCHLD, ChildDeath)
- for each in spawn_procs:
- proc_obj.append(Proc(each))
- for each in proc_obj:
- each.Run()
- while True:
- signal.pause()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement