subprocess.Popen () не работает с Linux - PullRequest
0 голосов
/ 27 мая 2019

Я использую 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")

Я не получаю сообщение об ошибке. Как будто все работает нормально

...