We have a Java server application running on Mac OS X.
Occasionally this application has become unresponsive, and we have resorted to killing it with
kill -9. However, the process doesn't disappear; it still appears to
ps, with parentheses around its name and a question mark in the STAT column:
$ 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)
What's more the port being used by the server is still bound:
$ netstat -na | grep 9902 tcp4 0 0 *.9902 *.* LISTEN
even though it's not visible to
$ sudo lsof -P -i tcp | grep 9902 $
With the port still bound, we can't restart the server application. Short of restarting the machine, what can be done to get the port to release and get this process really killed?