subprocess.Popen()不适用于Linux

时间:2019-05-27 09:58:43

标签: python linux subprocess

我正在使用subprocess.Popen()调用子流程调用,该调用应独立运行,而父流程无需等待子流程的执行。

我尝试将某些数据结构作为字符串发送给子进程,该子进程在我的本地Windows机器上运行良好,但是当我在AWS ec2实例(Linux)中运行相同的代码时,它不会执行。即使当我在同一Linux中运行子流程的示例代码时,它也可以完美执行。

```parent process```
in_data = {'InstancesInfo': parameters['instances_info'],
                       'external_id': parameters['user_details['external_id'],
                       'role_arn': parameters['user_details']['role_arn'],
                       'org_id': parameters['user_details']['org_id']
                       }

args = json.dumps(in_data)
self.logger.info(CURRENT_OS)
                if CURRENT_OS == 'Linux':
                    self.logger.info("Inside IF")
                    subprocess.Popen(['python', 'RightSizeTypeConverter.py',args], shell=True)
                    self.logger.info("Done")
                else:
                    subprocess.Popen(['python', 'C:\develop\CloudM\AWS\General\RightSizeTypeConverter.py', args], shell=True)
                    print("Done")


```child process file```
```some code````
if __name__ == "__main__":
    logger.info("Inside Main")
    instance_list = json.loads(sys.argv[1])
    update_right_size_ec2_instances(instance_list)
    logger.info("Inside Main")

我没有收到错误消息。好像一切正​​常

0 个答案:

没有答案