1

在没有正确信息的情况下,我的 django+ngnix 应用程序服务器经常停机。所以我检查了日志,可以看到进程进入了失效状态。

3072 ? 00:18:41 uwsgi
4045 ? 01:00:56 uwsgi Defunct

因此重新启动该过程并暂时工作。

有谁知道服务器经常宕机,uwsgi死机的原因吗?如果进程进入失效状态,还有什么方法可以重新启动或恢复进程?

提前致谢。

4

2 回答 2

1

<Defunct> 进程已死。它只是徘徊,直到其父进程检索其退出状态。没有什么可以做的。

如果你杀死它的父进程,那么它会被重新分配给 init 进程(进程 #1),它将检索它的状态(并丢弃它),这将导致已失效的进程从ps

于 2016-01-09T05:19:52.493 回答
1

已失效的进程是僵尸进程,该进程已从系统退出,但其父进程未收到其退出代码,因为其父进程已在其之前退出,因此其条目存在于 ps 表中。

但是这样的过程不会消耗您的资源。

您可以通过在其父进程中使用等待条件来避免这种情况。

这样父母将等待孩子成功退出,然后父母将退出系统。

于 2016-01-09T05:29:17.540 回答