[英]How to stop/terminate a python script from running? (once again)
您可以使用子进程和信号处理程序来执行此操作。 您还可以使用subprocess
通过subprocess.PIPE
接收和发送信息,您可以在文档中阅读更多信息。
以下应该是您要执行的操作的基本示例:
import subprocess
import signal
import sys
def signal_handler(sig, frame):
print("You pressed Ctrl+C, stopping.")
print("Signal: {}".format(sig))
print("Frame: {}".format(frame))
sys.exit(123)
# Set up signal handler
signal.signal(signal.SIGINT, signal_handler)
print("Starting.")
while True:
cmd = ['sleep', '10']
p = subprocess.Popen(cmd)
p.wait()
if p.returncode != 0:
print("Command failed.")
else:
print("Command worked.")
与我找到的解决方案相比,该问题的另一个解决方案(由@Quillan Kaseman 提供)要优雅得多。 当我按Ctrl + Z而不是Ctrl + C时,我所有的问题都解决了。
事实上,我不知道为什么Z
可以工作而C
不行。 (我稍后会尝试寻找一些细节)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.