我有一个正在运行的 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,它们可能永远不会改变,但从理论上讲,使用名称可能更安全)