运行分配给os环境的子进程模块

时间:2014-01-19 15:11:16

标签: python python-2.7 subprocess

我的python脚本有问题,在尝试/搜索几小时后,我还没有找到解决方案。所以我正在寻求你的帮助。

我正在从内置python解释器的软件内部运行子进程调用。由于这个python解释器没有所需的python模块,我将此子进程分配给主OS默认环境。这个子进程基本上是一个服务,它打开一个给定的端口,并接受到该端口的tcp连接。

 _sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 needed_value=['python','service.py']
 enviro = #a dictionary with os.enviro I got from terminal
 engine_osx =subprocess.Popen(needed_value,shell=None,env=enviro)

所以这基本上就是python脚本。问题是,之后,我有一个尝试连接到开放端口的while循环,它总是失败。但是,如果我使用telnet,我可以连接到端口(即使在while循环期间)。 此外,如果我重新启动脚本(如果它已经在运行,我有条件不再启动子进程),我可以毫无问题地关联。

  _sock.connect((str(server_ip), port))

所以我的问题是,为什么在第一次尝试时没有连接?我不知道它是否相关,但我使用的是OSX(在Windows或Linux中不会发生)。

非常感谢

0 个答案:

没有答案