简体   繁体   中英

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

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.

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!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM