有没有办法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。)