把java应用部署到linux服务器上的tomcat中,总是要经常重启,一般用sh shutdown.sh
当然,有时候这个命令无法把tomcat完全关闭,于是又使用kill -9 pid (进程号,查找命令为:ps -ef | grep tomcat)
kill命令很好用,杀的很完全,但问题总是不断变化的,比如,kill命令只能对进程号进行杀死,遇到下面的问题就麻烦了:
一个tomcat端口被大量占用,状态变成CLOSE_WAIT,处于假死状态,其实跟真死没什么区别,
这个时候总不能一个一个查,那说明不是搞技术的,搞技术的就喜欢“投机取巧”,
所以这时候不能对进程号查杀,而是要对指定端口进行查杀,
如下2种命令都可以达到这种效果:
其中8080为端口号
kill -9 $(netstat -tlnp | grep :8080 | awk '{print $7}' | awk -F '/' '{print $1}')
kill [']netstat -nlp | grep :8080 | awk '{print $7}' | awk -F"/" '{ print $1 }'[']
一旦执行这两个命令中的一个,就会把对端口的占用一次性完全清除,再启动下tomcat就没问题了