如何停止/终止python脚本运行?

问题描述 投票:36回答:14

我在IDLE中编写了一个程序来标记文本文件,它开始标记349个文本文件!我怎么能阻止它?如何停止正在运行的Python程序?

python execution terminate termination
14个回答
30
投票

要停止程序,只需按Control + C.


1
投票

要停止程序,只需按CTRL + D.

或者exit()


0
投票

按Ctrl + Alt + Delete,将弹出任务管理器。找到正在运行的Python命令,右键单击它,然后单击“停止”或“终止”。


0
投票

如果您正在使用Spyder,请使用CTRL +。 (DOT)你将重启内核,你也将停止程序。


0
投票

Control + D适用于Windows 10.另外,将exit()放在最后也可以。


-3
投票

以编程方式,您可以使用此:

while True:
    pass

32
投票

如果在代码中使用exit()函数,也可以执行此操作。更理想的是,你可以做sys.exit()。即使您通过sys.exit()包并行运行,multiprocessing也可能会终止Python。


18
投票
  • 要停止python脚本,只需按Ctrl + C
  • exit()的脚本中,你可以做到。
  • 您只需退出即可在交互式脚本中执行此操作。
  • 你可以使用pkill -f name-of-the-python-script

18
投票

Ctrl-Break它比Ctrl-C更强大


16
投票

如果您的程序在交互式控制台上运行,按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信号。

Unix上的kill命令默认发送SIGTERM,Python程序可以使用SIGTERM模块为signal安装信号处理程序。从理论上讲,SIGTERM的任何信号处理程序都应该优雅地关闭进程。但有时如果进程卡住(例如,阻塞在不间断的IO睡眠状态),SIGTERM信号没有效果,因为进程甚至无法唤醒来处理它。

要强制杀死不响应信号的进程,您需要发送SIGKILL信号,有时也称为kill -9,因为9SIGKILL常量的数值。从命令行,您可以使用kill -KILL <pid>(或简称kill -9 <pid>)发送SIGKILL并立即停止进程运行。

在Windows上,您没有Unix系统的过程信号,但您可以使用TerminateProcess函数强制终止正在运行的进程。交互式地,最简单的方法是打开任务管理器,找到与您的程序对应的python.exe进程,然后单击“结束进程”按钮。您也可以将taskkill命令用于类似目的。


5
投票

要停止正在运行的程序:使用CTRL + C终止进程。

要在python中以编程方式处理它:导入sys模块并使用sys.exit来终止程序。

    import sys
    sys.exit()

3
投票

当我在Linux终端上运行python脚本时,CTRL + \工作。 (不是CRTL + C或D)


2
投票

你也可以使用Activity Monitor来阻止py进程


2
投票

如果你被python shell捕获,Ctrl + Z应该这样做。请记住,脚本的实例可以继续在后台运行,因此在linux下你必须杀死相应的进程。

© www.soinside.com 2019 - 2024. All rights reserved.