我的工作流中有一个即时消息服务器,布署在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列的值,即进程号。
执行后可正常启动服务。