def launch_player_programs(programs, port): procs = OrderedDict() for i, prog in enumerate(programs): name = 'player#{}-{}'.format(i, os.path.split(prog)[1]) if prog.endswith('jar'): args = ['java', '-jar', prog, name, str(port)] elif prog.endswith('.py'): args = ['python', prog, name, str(port)] else: args = [prog, name, str(port)] proc = Popen(args) print('launched {}[{}], pid={}'.format(name, ' '.join(args), proc.pid)) proc.daemon = True procs[name] = proc return procs