[英]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.