终止侦听给定端口的进程的可移植方法

终止侦听给定端口的进程的可移植方法

有没有办法bash lsof -t -i tcp:8000 | xargs kill从 shell 脚本中杀死在给定端口(例如 in )上侦听的进程,该脚本也可以在cygwin, 以及上运行bash

答案1

AFAIK,lsof尚未移植到 cygwin。

您可以在那里使用 Microsoftnetstat实用程序:

netstat -aon | awk '$1 == "TCP" && $4 == "LISTENING" && $2 ~ /:8000$/ {print $5}' |
  xargs kill

答案2

杀死正在给定端口上侦听的进程的问题的最初部分是识别该进程。lsof在 Cygwin 上不可用,但该fuser工具(作为psmisc包的一部分)可用,并且在其手册页中记录为:

fusionr - 使用文件或套接字识别进程

手册的示例部分有一个演示,显示

fusionr telnet/tcp 显示(本地)TELNET 端口上的所有进程。

(您可能需要以管理员身份运行 cygwin shell。)

相关内容