当前位置: 技术问答>linux和unix
kill不掉一个服务怎么办?
来源: 互联网 发布时间:2015-06-02
本文导语: ElectroServer 一个flash server端 用 java -cp .:ElectroServer3.jar com.electrotank.electroserver.ElectroServer 启动了 然后就停不掉了 用服务自己提供的命令 java -cp .:ElectroServer3.jar com.electrotank.electroserver.CommandLineAdmin -ShutDown 60504 Ad...
ElectroServer
一个flash server端
用
java -cp .:ElectroServer3.jar com.electrotank.electroserver.ElectroServer
启动了
然后就停不掉了
用服务自己提供的命令
java -cp .:ElectroServer3.jar com.electrotank.electroserver.CommandLineAdmin -ShutDown 60504 Administrator ElectroServer
没有响应
ps auwx | grep java
root 28220 0.0 0.0 0 0 pts/1 Z 09:51 0:01 [java ]
root 28358 0.0 0.6 214252 12516 pts/1 T 10:39 0:00 java -cp .:ElectroServer3.jar com.electrotank.electroserver.ElectroSe
root 28475 0.0 0.3 212684 7596 pts/1 T 10:51 0:00 java -cp .:ElectroServer3.jar com.electrotank.electroserver.CommandLi
root 28596 0.0 0.0 3116 508 pts/1 T 11:10 0:00 killall -w java
root 28603 0.0 0.4 213092 8456 pts/1 T 11:14 0:00 java -cp .:ElectroServer3.jar com.electrotank.electroserver.CommandLi
root 28669 0.0 0.4 212576 8484 pts/1 T 11:20 0:00 java -cp .:ElectroServer3.jar com.electrotank.electroserver.CommandLi
root 29103 0.0 0.0 3276 628 pts/1 S 15:30 0:00 grep java
用killall java
kill 28220
kill -15 28220
kill -9 28220
都没效果
[root@mail InstallElectroServer]# kill 28220
[root@mail InstallElectroServer]# fg
./StopElectroServer.sh
Exception in thread "main" java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:408)
at sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:450)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:182)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at com.electrotank.electroserver.CommandLineAdmin.main(CommandLineAdmin.java:89)
停不了了阿
怎么办?只有重新启动服务器了吗?
一个flash server端
用
java -cp .:ElectroServer3.jar com.electrotank.electroserver.ElectroServer
启动了
然后就停不掉了
用服务自己提供的命令
java -cp .:ElectroServer3.jar com.electrotank.electroserver.CommandLineAdmin -ShutDown 60504 Administrator ElectroServer
没有响应
ps auwx | grep java
root 28220 0.0 0.0 0 0 pts/1 Z 09:51 0:01 [java ]
root 28358 0.0 0.6 214252 12516 pts/1 T 10:39 0:00 java -cp .:ElectroServer3.jar com.electrotank.electroserver.ElectroSe
root 28475 0.0 0.3 212684 7596 pts/1 T 10:51 0:00 java -cp .:ElectroServer3.jar com.electrotank.electroserver.CommandLi
root 28596 0.0 0.0 3116 508 pts/1 T 11:10 0:00 killall -w java
root 28603 0.0 0.4 213092 8456 pts/1 T 11:14 0:00 java -cp .:ElectroServer3.jar com.electrotank.electroserver.CommandLi
root 28669 0.0 0.4 212576 8484 pts/1 T 11:20 0:00 java -cp .:ElectroServer3.jar com.electrotank.electroserver.CommandLi
root 29103 0.0 0.0 3276 628 pts/1 S 15:30 0:00 grep java
用killall java
kill 28220
kill -15 28220
kill -9 28220
都没效果
[root@mail InstallElectroServer]# kill 28220
[root@mail InstallElectroServer]# fg
./StopElectroServer.sh
Exception in thread "main" java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:408)
at sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:450)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:182)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at com.electrotank.electroserver.CommandLineAdmin.main(CommandLineAdmin.java:89)
停不了了阿
怎么办?只有重新启动服务器了吗?
|
没结束,死到那里了,你可以看看它的父进程,杀掉他看看,可能会杀掉
|
僵死进程,需要kill起父进程。
|
如果实在不敢停父进程可以这样。
用个调试工具调试那个程序attach到父进程pid上。在里面call wait(0)。
gnu的工具是可以的,solaris上的调试工具你自己找。
or
#killall -9
用个调试工具调试那个程序attach到父进程pid上。在里面call wait(0)。
gnu的工具是可以的,solaris上的调试工具你自己找。
or
#killall -9
|
要想杀掉这个僵尸进程,并且在使用kill -9 无效的情况下,只有杀掉他的父进程。