我们有一个在 Mac OS X 上运行的 Java 服务器应用程序。
有时这个应用程序变得没有响应,我们不得不使用kill -9. 然而,这个过程并没有消失;它似乎仍然是ps,其名称周围带有括号,并且 STAT 列中有一个问号:
$ ps u -p 776
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
camadmin 776 0.0 0.0 0 0 ?? ?E 5:12PM 0:00.00 (java)
Run Code Online (Sandbox Code Playgroud)
更重要的是,服务器正在使用的端口仍然是绑定的:
$ netstat -na | grep 9902
tcp4 0 0 *.9902 *.* LISTEN
Run Code Online (Sandbox Code Playgroud)
即使它不可见lsof:
$ sudo lsof -P -i tcp | grep 9902
$
Run Code Online (Sandbox Code Playgroud)
由于端口仍然绑定,我们无法重新启动服务器应用程序。没有重新启动机器,可以做些什么来释放端口并真正杀死这个进程?