在Linux终端中杀死Python解释器

76

我想杀掉 Python 解释器 - 意图是让所有正在运行的 Python 文件停止(没有任何关于这些文件的信息)。 显然,这些进程应该被关闭。

任何删除 Python 文件或销毁解释器的想法都可以 :D(我正在使用虚拟机)。 我需要从终端进行操作,因为我编写 C 代码并使用 Linux 命令... 希望获得帮助

9个回答

138
pkill -9 python

应该杀掉所有正在运行的Python进程。


1
如果进程名称更改了(从Python更改为其他名称)? - אריאל ליטמנוביץ
2
您还可以通过以下方式对每个Python脚本进行更加精细的选择:https://dev59.com/V2Ml5IYBdhLWcg3wZWWE#34239260 - Ciro Santilli OurBigBook.com
1
使用多进程时非常方便 - Jason Goal
@LorenzoBaracchi,你能解释一下 -9 是干什么的吗?我找不到它的用处。 - mgus
-9设置信号为SIGKILL, 其他信号包括: SIGHUP -1 挂起信号。 SIGINT -2 键盘中断信号。 SIGKILL -9 终止进程的信号。 SIGTERM -15 终止信号。 SIGSTOP -17, -19, -23 停止进程。 - MrBlenny
显示剩余2条评论

42

有一种相当粗糙的方法可以做到这一点,但要小心,因为首先,这依赖于Python解释器进程将自己标识为python,其次,它还会导致任何其他被标识为该名称的进程也被终止。

简而言之,您可以通过在Shell中输入以下内容来终止所有Python解释器(确保您阅读了上面的警告!):

ps aux | grep python | grep -v "grep python" | awk '{print $2}' | xargs kill -9
为了解释这段代码是如何工作的。首先,ps aux | grep python | grep -v "grep python"获取了所有调用自己为python的进程列表,其中grep -v确保你刚刚运行的grep命令不会出现在输出中。接下来,我们使用awk获取输出的第二列,即进程ID。最后,通过向每个进程提供kill -9命令,不太正式地终止了这些进程。

4
您可以将第三个管道段改为grep -v "grep",以忽略在ps aux输出中的任何grep。这使命令更通用,因此可以更改第二个管道段而不必担心更改第三个管道段。 ps aux | grep "python -u" | grep -v "grep" | awk '{print $2}' | xargs kill -9 - TechplexEngineer

24

20

您可以尝试使用killall命令:

killall python


10

pgrep -f <your process name> | xargs kill -9

这将会结束你的进程服务。 在我的情况下,它是

pgrep -f python | xargs kill -9


7

pgrep -f youAppFile.py | xargs kill -9

pgrep 命令返回特定文件的 PID,只会杀死特定应用程序。


1

我看到了pkill命令作为最佳答案。虽然这很好,但我仍然试图小心谨慎(因为在杀死进程时可能会冒着风险),并遵循以下方法:

首先使用以下命令列出所有Python进程:

$ ps -ef | grep python

只是想看看之前有哪些根用户进程在运行,并在之后交叉检查,看它们是否仍在运行(在我完成后!:D)

然后使用pgrep

$ pgrep -u <username> python -d ' ' #this gets me all the python processes running for user username

# eg output:
11265 11457 11722 11723 11724 11725

最后,我使用ps -ef| ...的输出进行交叉检查后,使用kill命令终止这些进程。
kill -9 PID1 PID2 PID3 ... 

# example 
kill -9 11265 11457 11722 11723 11724 11725

此外,我们可以使用以下方法交叉检查根PID:
pgrep -u root python -d ' '

并通过从ps -ef|...输出进行验证


1
如果您想显示进程名称并使用kill命令终止它们,我建议使用此脚本来终止所有正在运行的python3进程并释放内存:
ps auxww | grep 'python3' | awk '{print $2}' | xargs kill -9

0

在使用Ubuntu 20.04.2时,终止Python脚本的方法是同时按下 Ctrl + D,而不是 Ctrl+C


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接