解决java.net.BindException: Address already in use问题

如果tomcat服务器异常终止,下次启动时就有可能出现 java.net.BindException: Address already in use (端口号被占用)问题,导致启动失败。使用如下命令查看端口号占用情况:

$netstat -pant | grep 8080    #-t参数,显示进程号

解决java.net.BindException: Address already in use问题_第1张图片

可以看到,很明显的端口号还在使用中,这是因为tomcat上次的异常终止,导致部分socket没有关闭,也可能是其他原因,根据个人情况而定。如果等待100s,像上图所示的处于 CLOSE_WAIT状态的连接会自动关闭,如果不想等待,执行如下命令,强制终止进程,从上面可以看出,进程号为 7705

也可以使用如下命令查看占用端口号8080的进程号是什么

$fuser -v -n tcp 8080  

怎么查看linux中某个端口的连接数

linux下非常简单
netstat -pnt |grep :80 |wc -l
显示多少就是有多少个链接

windows下
netstat -ano
这样可以显示全部,但是不知道怎么统计了

你可能感兴趣的:(exception)