gpt4 book ai didi

linux - 如何杀死这个不朽的nginx worker?

转载 作者:IT王子 更新时间:2023-10-28 23:55:17 26 4
gpt4 key购买 nike

我已经启动了nginx,当我像root一样停止

/etc/init.d/nginx stop

然后我输入

ps aux | grep nginx

并得到像tcp LISTEN 2124 nginx WORKER这样的响应

kill -9 2124  # tried with kill -QUIT 2124, kill -KILL 2124

在我再次输入之后

ps aux | grep nginx

并得到像tcp LISTEN 2125 nginx WORKER这样的响应等等。

如何杀死这个不朽的 Chuck Norris worker ?

最佳答案

kill -9 之后,没有什么可以对进程做更多的事情了——它已经死了(或者注定要死)。它坚持的原因是因为(a)它的父进程还没有等待它,所以内核持有进程表条目以保持它的状态直到父进程这样做,或者(b)进程卡在对未完成的内核的系统调用(这通常意味着存在错误的驱动程序和/或硬件)。

如果是第一种情况,让父级等待子级或终止父级应该可行。大多数程序都没有明确的方法让它们“等待 child ”,因此这可能不是一个选择。

在第二种情况下,最可能的解决方案是重启。可能有一些工具可以清除这种情况,但这并不常见。根据内核处理正在执行的操作,可能可以通过其他方式解除阻塞——但这需要了解该处理。例如,如果该进程被某个其他进程以某种方式无限期持有的内核锁阻塞,则终止该其他进程可以缓解该问题。

请注意,ps 命令也可以区分这两种状态。这些出现在“Z”状态。有关详细信息,请参阅 ps 手册页:http://linux.die.net/man/1/ps .它们也可能显示为“defunct”文本。

关于linux - 如何杀死这个不朽的nginx worker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18576845/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com