在Linux中终止进程

15
server01:/# ps -ax | grep java

Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html

 7342 pts/3    Z      0:00 [java] <defunct>

 7404 pts/3    S+     0:00 grep java


server01:/# kill 7342

server01:/# ps -ax | grep java

Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html

 7342 pts/3    Z      0:00 [java] <defunct>

 7406 pts/3    S+     0:00 grep java


server01:/# 

在上述示例中,我使用ps命令来获取java进程的pid,即7342。

然后我使用kill命令杀死了该进程。 但是该进程并未被杀死,因为再次运行ps命令时,显示java进程的pid为7342。

我应该使用其他命令来杀死该进程吗?为什么kill命令无法杀死该进程?

谢谢


3
适合发布在superuser.com上。 - Paul R
问题不是关于一般编程,而是关于系统。请尝试访问superuser.com。 - Piran
7个回答

20

尝试

ps aux

然后

kill -1 PID_NUMBER

要求程序自己关闭,如果它没有响应,您可以强制关闭它。

kill -9 PID_NUMBER

请记住,使用-9强制关闭程序将在不询问的情况下结束,并且不保存任何内容 更多详细信息请查看:man kill


请记住,kill -9 应该是你的最后手段,因为它不会让你杀死的进程的子进程死亡。这些子进程会变成僵尸进程。 - Sergey Eremin
尝试使用以下命令代替:lsof -wni tcp:3000 | xargs -I{} kill -9 {} - chia yongkang

6
Linux支持BSD形式的开关到ps命令(没有前导- …破折号)。 如果提供连字符,则GNU coreutils版本的ps(标准Linux发行版上的版本)将尝试将开关解释为SysV兼容。 这是您错误的来源。
我建议使用开关的BSD格式并查找-o选项,以指定仅由匹配进程的PID组成的输出格式。
另外,您正在尝试终止一个僵尸进程。 正如您已经发现的那样,这是徒劳的。 僵尸进程是进程表中为已经死亡的进程保留的占位符。 它会保留在进程表中,直到其父进程收回其退出代码。 如果父进程从不调用wait()系统调用,则该条目将保留在那里,直到父进程被杀死,此时zombie(和任何其他孤儿进程)将被init进程继承。 Linux下的正常init(或UNIX的任何其他形式)定期收回所有死进程(zombies)。
在UNIX / Linux系统上,从概念上讲,每个退出的进程都要花费一小段时间作为“zombie”…也就是说,在某个其他进程读取其退出值的时间之间应该始终有一段时间(即使只是丢弃它,如init所做的那样)。
这个问题真的应该放在ServerFault上。

1
附加说明:通过运行 ps auxf 命令,您可以查看父进程是什么。它可能也被阻塞了,或者没有关注它的子进程。 - vdboor

5

kill -9可以作为最后的手段来确保进程被终止。


2

kill -9 $(pgrep -f keyword)

杀死通过“关键字”搜索到的进程ID。


1

该进程被列为僵尸进程。它的工作已经完成,但是它仍然存在,因为父进程还在运行。但是,如果父进程崩溃或被kill -9杀死,则没有父进程,因此僵尸进程将一直保留到重新启动。

僵尸进程只使用最少的资源,因此您可以保留它们。

解决方案:要么杀死父进程,要么使用kill -9 <pid>命令。


或者,如果你感到沮丧,可以执行 kill -KILL <pid> 命令。 - James
感谢您的知识。 kill -9 <pid> 不起作用。 您能告诉我查找父进程的命令吗? - sjain

0
kill $(pgrep [search pattern])

看看这样是否更好。你必须是root或进程所有者才能杀死一个进程。


0
Java进程已经变成了僵尸进程。你应该尝试通过使用kill发送SIGCHLD信号给父进程,告诉父进程收割僵尸子进程。如果这样做失败了,就像@Martin所提到的那样,你可以杀死父进程或者kill -9僵尸进程。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接