linux下,socket端口不能释放

我的工作流中有一个即时消息服务器,布署在tomcat下。在linux系统环境下启动tomcat后,服务器跟着启动,指定socket端口处于监听状态,但在tomcat停止时,socket不能释放。同样的应用,在windows环境下就是正常的。

a)在linux下启动消息服务器时,用“/tomcat/bin/catalina.sh run”命令。如果当前在bin目录下,执行“./catalina.sh run ”。结束消息服务时,直接按Ctrl+C。不能用其它命令。

b)如果用远程登陆软件时,可能会把操作窗口关闭,不支持Ctrl+C快捷键。此时可以执行如下命令:

lsof –i:9888中的9888为被占用的socket端口号。

kill -9 4495中的4495为lsof命令显示的pid列的值,即进程号。

执行后可正常启动服务。