繁体   English   中英

Python运行系统命令,然后退出...将不会退出

[英]Python run system command and then exit… won't exit

我有以下python代码:

os.system("C:/Python27/python.exe C:/GUI/TestGUI.py")
sys.exit(0)

它运行命令正常,弹出一个窗口。 但是,它不会退出第一个脚本。 它只是停留在那里,我最终不得不强行杀死这个过程。 没有错误产生。 这是怎么回事?

而不是os.system使用subprocess.Popen

这运行一个命令,不等待它然后退出:

import subprocess
import sys

subprocess.Popen(["mupdf", "/home/dan/Desktop/Sieve-JFP.pdf"])
sys.exit(0)

注意os.system(command)如:

p = subprocess.Popen(command)
p.wait()

我建议使用os._exit而不是sys.exit ,因为sys.exit不会退出程序但会引发异常级别,或者退出一个线程。 os._exit(-1)退出整个程序

KeyboardInterrupts和信号只能由进程看到(即主线程)。 如果嵌套命令由于某种文件读取或写入块而挂起,则无法使用任何键盘命令退出程序。

为什么只读打开命名管道块?

如果你无法消除磁盘块的来源,那么一种方法是将进程包装在线程中,这样你就可以强行杀死它。 但是如果你这样做,你就有机会在磁盘上留下半写和损坏的文件。

import sys ,subprocess

subprocess.Popen(["C:/Python27/python.exe", "C:/GUI/TestGUI.py"])
sys.exit(0)

Popen来自子进程模块您正在寻找什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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