I have the following python code:
os.system(\"C:/Python27/python.exe C:/GUI/TestGUI.py\")
sys.exit(0)
It runs the command fine, and a window po
import sys ,subprocess
subprocess.Popen(["C:/Python27/python.exe", "C:/GUI/TestGUI.py"])
sys.exit(0)
Popen from subprocess module what you are looking for.
KeyboardInterrupts and signals are only seen by the process (ie the main thread). If your nested command hangs due to some kind of file read or write block, you won't be able to quit the program using any keyboard commands.
Why does a read-only open of a named pipe block?
If you can't eliminate the source of the disk block, then one way is to wrap the process in the thread so you can force kill it. But if you do this, you leave opportunity for half-written and corrupted files on disk.
I suggest using os._exit
instead of sys.exit
, as sys.exit doesnt quit a program but raises exception level, or exits a thread. os._exit(-1)
quits the entire program
instead of os.system
use subprocess.Popen
this runs a command and doesn't wait for it and then exits:
import subprocess
import sys
subprocess.Popen(["mupdf", "/home/dan/Desktop/Sieve-JFP.pdf"])
sys.exit(0)
note that os.system(command)
like:
p = subprocess.Popen(command)
p.wait()