我用IDLE编写了一个程序来标记文本文件,然后开始标记349个文本文件!我该如何阻止它?如何停止正在运行的Python程序?
Answers:
要停止程序,只需按Control + C。
^C在终端上,并且系统监视器显示python仍在使用大量CPU ...
Ctrl + Z(至少在Linux上)。然后,如果您想杀死它,kill %n请在按时在“停”旁边得到的数字“ n”处运行Ctrl + Z。如果要恢复它,请运行fg。
如果exit()在代码中使用该函数,也可以执行此操作。更理想的是,您可以这样做sys.exit()。即使您通过软件包并行运行程序sys.exit(),也可能终止Python multiprocessing。
注意:为了使用sys.exit(),您必须将其导入:import sys
sys.exit(1)不会停止该过程。我基本上有多个线程,并且每个线程都在由发起的外部进程上阻塞Popen。我需要一个核选项来杀死Python进程以及Python进程本身创建的所有子进程。到目前为止找不到。
如果您的程序在交互式控制台上运行,则按CTRL+C将KeyboardInterrupt在主线程上引发异常。
如果您的Python程序没有捕获到它,KeyboardInterrupt则会导致Python退出。但是,一个except KeyboardInterrupt:块或类似裸露的东西except:将阻止此机制实际停止脚本的运行。
有时,如果KeyboardInterrupt无法正常工作,您可以发送SIGBREAK信号。在Windows上,解释器可以处理CTRL+Pause/Break而不生成可捕获的KeyboardInterrupt异常。
但是,这些机制主要仅在Python解释器正在运行并响应操作系统事件时才起作用。如果Python解释器由于某种原因没有响应,则最有效的方法是终止运行解释器的整个操作系统进程。其机制因操作系统而异。
在Unix风格的shell环境,您可以按CTRL+Z来中止任何进程当前控制的控制台。返回shell提示后,您可以使用jobs它列出挂起的作业,并可以使用杀死第一个挂起的作业kill %1。(如果要重新开始运行,可以使用fg %1;在前台继续执行作业;有关更多信息,请阅读Shell的作业控制手册。)
另外,在Unix或类似Unix的环境中,您可以找到Python进程的PID(进程标识符)并用PID杀死它。使用类似的方法ps aux | grep python来查找正在运行的Python进程,然后使用kill <pid>发送SIGTERM信号。
killUnix上的命令SIGTERM默认发送,Python程序可以安装信号处理程序以SIGTERM使用该signal模块。从理论上讲,任何用于的信号处理程序SIGTERM都应正常关闭进程。但是有时,如果进程卡住了(例如,在不间断的IO睡眠状态下被阻塞),则SIGTERM信号无效,因为该进程甚至无法唤醒以处理该信号。
为了强行终止不响应信号的进程,您需要发送SIGKILL信号,有时称为,kill -9因为它9是SIGKILL常量的数值。在命令行中,您可以使用kill -KILL <pid>(或kill -9 <pid>简称)发送aSIGKILL并立即停止该进程运行。
在Windows上,您没有Unix的进程信号系统,但是您可以使用TerminateProcess函数强制终止正在运行的进程。以交互方式,最简单的方法是打开任务管理器,找到python.exe与您的程序相对应的进程,然后单击“结束进程”按钮。您也可以将taskkill命令用于类似目的。
Ctrl + C。exit(),您可以执行此操作。pkill -f name-of-the-python-script。python script.py&
Ctrl-Break 比Ctrl-C更强大
要使用键盘停止python脚本,请执行以下操作:Ctrl+C
使用代码停止它(这在Python 3上对我有用):
import os
os._exit(0)
您还可以使用:
import sys
sys.exit()
要么:
exit()
要么:
raise SystemExit
如果您在Jupyter Notebook中,则exit()会杀死内核,所以这不是一个好主意。raise命令将停止程序。
要停止程序,只需按CTRL+D
或exit()。
按Ctrl+ Alt+ Delete,将弹出任务管理器。找到正在运行的Python命令,右键单击它,然后单击“停止”或“杀死”。
ctrl+c应该杀死它。或者,kill -9它