繁体   English   中英

如何在 Bash 中杀死 TCP 端口 16969?

[英]How can I kill TCP port 16969 in Bash?

我有一个使用 TCP 端口 16969 的应用程序。它有时需要快速重新启动软件内核。 但是如果我启动它太快,我就会被锁定

线程“main”中的异常 java.net.BindException:地址已在使用中

所以我想触发我的 Bash 脚本,它可以用 16969 杀死任何正在运行或监听的端口,但是我该怎么做呢?

$ lsof -w -n -i tcp:16969 # this gives me a list of 50 lines but how can I kill them all?

您是否尝试过使用 tcpkill?

例子:

tcpkill -i eth0 port 21

我觉得:

lsof -i tcp:22 | grep LISTEN | awk '{print $2}' | xargs kill

应该做的伎俩。

要在让它松开之前仔细检查它要运行的命令,请在kill之前添加一个echo ,如下所示:

lsof -i tcp:22 | grep LISTEN | awk '{print $2}' | xargs echo kill

然后它会列出它通常会杀死的 PID

fuser -k 16969/tcp 

可以释放那个端口。 这是一个有用的命令,可用于关闭端口,无论它是什么。

我经常在 Netbeans 中使用 JBoss 遇到这个问题......

我的解决方案:

在终端类型中:

 sudo netstat -lnp | grep 8080  

然后它显示如下:

 tcp6       0      0 :::8080       :::*        LISTEN      1722/java

然后使用:

 kill 1722  //replace 1722 by the PID you found.

希望它会有所帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM