如何手动停止在 Linux 上连续运行的 Python 脚本

如何手动停止在 Linux 上连续运行的 Python 脚本

我有一个正在运行的 Python 脚本,它不断将错误转储到日志文件中。

我想编辑脚本并再次运行,但不知道如何停止脚本。

我目前通过 PuTTy 登录 Linux,并在那里进行所有编码。那么,有没有命令可以停止 Linux 中的 python 脚本?

答案1

您必须找到进程 ID (pid)。执行此操作的一个命令是

$> ps -ef

要将结果限制为 python 进程,你可以使用 grep 结果

$> ps -ef | grep python

其结果如下:

user      2430     1  0 Jul03 ?        00:00:01 /usr/bin/python -tt /usr/sbin/yum-updatesd

第二列是 pid。然后使用 kill 命令如下:

$> kill -9 2430 (i.e. the pid returned)

答案2

试试这行简单的代码,它将终止所有script.py

pkill -9 -f script.py

答案3

找到脚本的进程 ID (PID) 并发出一个命令kill -9 PID来终止该进程,除非它在终端上作为前台进程运行,在这种情况下您可以按 Contrl-C 来终止它。

使用以下命令查找 PID:

ps -elf | grep python

它列出了所有 Python 进程,挑选出正确的进程并记下其 PID。然后

kill -9 <whatever_the_PID_is>

将终止该进程。您可能会在此阶段收到有关已终止进程的消息。

或者,您可以使用命令top来查找 python 进程。只需输入k(表示 kill),程序top就会提示您输入要终止的进程的 PID。有时很难看到您感兴趣的所有进程,top因为它们可能会滚出屏幕,我认为这种ps方法更简单/更好。

答案4

在理想情况下,您会阅读脚本的文档并了解应使用哪些信号来告诉它结束。在现实生活中,您可能希望首先向它发送 TERM 信号,如果它忽略了 TERM,则可能使用 KILL 信号。因此,您要做的就是使用 ps 命令(正如某人已经描述的那样)找到进程 ID。然后,您可以运行kill -TERM <pid>。某些程序在收到这样的信号时会清理一些东西,例如它们可能打开的文件,因此最好从这样的事情开始。如果失败了,那么除了大锤之外就没有什么可做的了: kill -KILL <pid>。(您可以使用数值,例如 -KILL = -9,它们可能永远不会改变,但从理论上讲,使用名称可能更安全)

相关内容