Spawning Python Processes
Here is a quick and simple way of spawning process in Python using the subprocess module
import errno
from os import waitpid, P_WAIT
from subprocess import Popen, PIPE
def spawn():
cmd = "echo 'a,b,c,d,e\nf,g,h,i,j'"
p = Popen(cmd, shell=True, stdout=PIPE, env={"PATH": "/bin"})
return p
def main():
procs = []
for x in (0,1,2,3,4,5,6):
procs.append(spawn())
rawData = {}
for proc in procs:
try:
waitpid(proc.pid, P_WAIT)
except Exception, e:
if e.errno != errno.ECHILD:
raise e
if proc.stderr:
error = proc.stderr.read()
if error:
msg = "Error in spawened process, %s" % error
raise OSError(msg)
data = [[out.strip() for out in line.split(',')]
for line in proc.stdout.readlines()]
rawData[proc.pid] = data
print rawData
if __name__ == "__main__":
main()