在Linux中通过进程名终止进程(Python)

7 投票
5 回答
16941 浏览
提问于 2025-04-15 15:18

这个方法可以用,但会把所有的Python进程都结束掉。

pkill python

不过,我不能这样做:

pkill myscript.py

我也试过用 killall,但也没有成功。 我需要用正则表达式吗?

顺便说一下,我想在一个Python脚本里用 import os.

5 个回答

0

你需要查找进程的ID(也叫PID)。可以使用命令“ps -A | grep NAME”,然后再用“kill -9 PID”来结束这个进程。这些命令也可以很简单地用Python来实现。

如果你试着用“名字”(就像pkill命令那样),可能会找到多个匹配的进程,这样就会得到意想不到的结果(至少在上面提到的情况下是这样的)。

2

你能让这个程序把它的 pid 写到一个文件里吗?
在Python中,你可以这样获取 pid

import os
os.getpid()

通过名字来结束进程很方便,但有时候会带来一些不好的后果,就像你看到的那样。

6

你是从同一个脚本中启动Python子进程,然后又想结束它吗?如果是这样,可以看看这个问题,里面有详细的说明。如果不是,你可以使用pkill的-f选项,这样可以在Python进程的参数列表中搜索脚本名称,但这样做还是有可能会结束一些你不想结束的进程。想了解更多信息,可以查看这个手册页

撰写回答