按名称杀死特定端口上的进程

kill a process on a specific port by name

我在端口 3200 上有一个进程 运行,它与其他端口上的其他进程通信。

我知道我可以通过 kill -9 $(lsof -t -i:3200).

终止给定端口上的进程

我的问题是 lsof 的输出还包含正在与我要杀死的进程通信的其他进程:

COMMAND         PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java          16379 tirafesi  102u  IPv6 156964      0t0  TCP localhost:41162->localhost:3200 (ESTABLISHED)
python3       16793 tirafesi    3u  IPv4 158199      0t0  TCP localhost:51101->localhost:3200 (ESTABLISHED)
processtokill 16802 tirafesi    8u  IPv4 156963      0t0  TCP *:3200 (LISTEN)
processtokill 16802 tirafesi   10u  IPv4 158788      0t0  TCP localhost:3200->localhost:51101 (ESTABLISHED)
processtokill 16802 tirafesi   11u  IPv4 156965      0t0  TCP localhost:3200->localhost:41162 (ESTABLISHED)

如何终止端口 3200 上名为 processtokill 的进程?

您想终止正在侦听端口 3200 的进程,因此:

kill -9 $(lsof -t -i:3200 -sTCP:LISTEN)

我会尝试:

kill -9 $(lsof -i:3200 | grep ^processtokill | awk '{print }' | uniq)