Software launched with os.system or subprocess.Popopen closes as python shuts down

Viewed 110

I am trying to launch an android emulator from Python. I have tried the following code:

os.system('C:\\Nox\\bin\\Nox.exe -clone:Nox')
subprocess.Popopen('C:\\Nox\\bin\\Nox.exe -clone:Nox')

The emulator launched by either code closes as soon as python code is terminated. However, when I run the code ('C:\\Nox\\bin\\Nox.exe -clone:Nox') in Win10 terminal, the emulator doesn't close when the terminal is closed.

How can I keep the emulator running when python code terminates? I do not want to keep python code running.

1 Answers

I don't have a Windows machine to try this on, but in Ubuntu the following did it for me:

    import subprocess

    subprocess.Popen('<your command string>', shell=True)

So in your case:

    import subprocess

    subprocess.Popen('C:\\Nox\\bin\\Nox.exe -clone:Nox', shell=True)

Note there is a parameter creationFlags with values that seem of interest (https://docs.python.org/3/library/subprocess.html#windows-constants), however hopefully shell=True will suffice.

Do note the strong warnings in the documentation around opening a process with shell=True where the process being run depends upon some user input!

Related