gpt4 book ai didi

python - 如何停止/终止Python脚本的运行? (再次)

转载 作者:行者123 更新时间:2023-12-01 06:42:36 25 4
gpt4 key购买 nike

上下文:

我有一个正在运行的 python 脚本。它在循环中包含许多 os.system("./executableNane") 调用。

如果我按 ctrl + C,它只会停止当前 ./executableNane 的执行并传递到下一个。

问题:

如何停止整个脚本的执行,而不仅仅是当前调用的可执行文件的执行?

请注意,我已仔细阅读问题/答案 here但即使使用kill,我也可以杀死可执行文件executableNane,但不能杀死整个脚本(我无法使用top找到它)。

我必须停止脚本(无需重新启动系统)的唯一方法是继续循环按 ctrl + C,直到所有测试完成。

最佳答案

您可以使用subprocesssignal handlers去做这个。您还可以使用 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.")

关于python - 如何停止/终止Python脚本的运行? (再次),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59379272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com