我在 IDLE 中编写了一个程序来对文本文件进行标记化,并开始对 349 个文本文件进行标记化!我该如何停止它?如何停止正在运行的 Python 程序?
我在 IDLE 中编写了一个程序来对文本文件进行标记化,并开始对 349 个文本文件进行标记化!我该如何停止它?如何停止正在运行的 Python 程序?
如果您在代码中使用 exit()
函数,也可以实现此操作。更理想的是,您可以使用 sys.exit()
。即使您通过 multiprocessing
包并行运行事物,sys.exit()
也可以可能终止Python。
注意:为了使用 sys.exit()
,您必须导入它:import sys
sys.exit(1)
无法停止进程。我基本上有多个线程,每个线程都会阻塞在由 Popen
启动的外部进程上。我需要一个核选项来杀死 Python 进程创建的所有子进程以及 Python 进程本身。到目前为止还没有找到。 - Dici要停止程序,只需按下Control + C。
^C
,而系统监视器显示Python仍然在大量使用CPU... - user3768495Ctrl + Z
(至少在Linux上是这样)。然后,如果你想杀死进程,运行 kill %n
,其中“n”是你按下 Ctrl + Z
后得到的数字,在“Stopped”旁边。如果你想恢复进程,运行 fg
。 - cluxter如果您的程序在交互式控制台上运行,按下 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手册以获取更多信息)。ps aux | grep python
的命令查找正在运行的Python进程,然后使用kill <pid>
发送SIGTERM
信号。kill
命令默认发送SIGTERM
,Python程序可以使用signal
模块安装SIGTERM
的信号处理程序。理论上,任何SIGTERM
的信号处理程序都应该优雅地关闭进程。但有时,如果进程被阻塞(例如,在不可中断的IO睡眠状态下),SIGTERM
信号没有效果,因为进程甚至无法唤醒以处理它。要强制结束一个没有响应信号的进程,你需要发送 SIGKILL
信号,有时也称为 kill -9
,因为 9
是 SIGKILL
常量的数值。在命令行中,可以使用 kill -KILL <pid>
(或简写为 kill -9 <pid>
)来发送 SIGKILL
并立即停止运行的进程。
在Windows上,你没有Unix系统的进程信号,但是可以通过使用 TerminateProcess
函数来强制终止正在运行的进程。交互式地,最简单的方法是打开任务管理器,找到与你的程序对应的 python.exe
进程,并点击 "结束进程" 按钮。你也可以使用 taskkill
命令来达到类似的目的。
exit()
也可以实现。pkill -f Python脚本名称
来完成。python script.py&
。 - richar8086使用键盘停止Python脚本:Ctrl + C
使用代码停止它(这在Python 3上对我有效):
import os
os._exit(0)
您还可以使用:
import sys
sys.exit()
或者:exit()
或:raise SystemExit
要停止正在运行的程序,请使用Ctrl+C来终止进程。
在Python中以编程方式处理它,导入sys
模块并在想要终止程序的地方使用sys.exit()
。
import sys
sys.exit()
Ctrl-Break比Ctrl-C更强大。
当我在Linux终端上运行Python脚本时,CTRL+\
有效。(不是CRTL + C或D)
Ctrl
+ Z
要好得多,因为后者只是挂起了进程。 - crmpiccoCtrl+Z可以帮你从Python shell中退出。请记住,脚本的实例可能会在后台继续运行,因此在Linux下,您需要杀死相应的进程。
jobs
或ps
,然后杀死8923754或您需要杀死的任何作业ID /进程ID。 - Paul如果你在Jupyter Notebook里,使用exit()命令可能会导致内核崩溃,所以这不是一个好主意。raise
命令可以停止程序。
ctrl+c
应该可以终止它。或者,用kill -9
终止它。 - Ayush