问题标签 [defunct]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
617 浏览

python - Python杀死已失效的子进程本身

我正在使用多处理 python 库。
我创建新流程并执行我的工作。
完成工作后,我只调用 exit(0),但进程处于“已失效”状态。我尝试杀死'kill -9 PID','kill -18 PID'等,但我无法杀死子进程并保持父进程处于活动状态。

我应该怎么做?这是我的python代码

'进程.py'

这是我的进程列表(ps -al)

我想保持活跃的父进程(19295)并杀死子进程19339。
我应该怎么做?

0 投票
2 回答
20116 浏览

python - 如何干净地杀死python中的子进程

我们正在使用 python 进程来管理长时间运行的 python 子进程。有时需要杀死子进程。kill 命令不会完全杀死进程,只会使其失效。

运行以下脚本演示了这种行为。

或者

将创建一个子流程。

对过程没有任何作用。证明了ps aux | grep sleep

该进程尚未被杀死/失效。使用subprocess.call()带有'kill'pid作为参数的函数将发出 kill 命令。

这将终止该进程,但它现在已失效。

如果队列运行的时间足够长,它最终会达到其最大进程数,还是最终会收获已失效的进程并且一切正常?

如果答案是前者,我怎样才能在不杀死父进程的情况下在 python 中处理已失效的进程?

有没有更好的杀死进程的方法?

0 投票
3 回答
323 浏览

bash - 如何grep多行堆栈跟踪?使用我的解决方案创建了已失效的线程

我有一个文件(application.log),我的应用程序在其中存储它们的日志。有时我有一个异常,我只想将这些异常存储在另一个文件(exception.log)中。每行日志都从日期开始,格式如下:

在这种情况下,应存储 exception.log:

我试过这样的方法:

该解决方案成功地完成了这项工作,但它也创建了许多线程,并且我系统中的总线程数急剧增加。因此,我需要使用另一种解决方案或解决“已失效的问题”。

伙计们,你们知道如何将异常堆栈跟踪剪切、grep 或复制到另一个文件或防止不打开失效的线程吗?

0 投票
1 回答
460 浏览

ps - 获取有关已失效进程(又名僵尸)的信息

如何获取有关已失效进程的所有信息?

例如,我想知道:谁是父进程,用什么命令来运行这个已失效的进程,它死的原因,日志......

当我运行时,ps aux | grep defunct我得到的是:

注意:我使用的是 Red Hat / Centos OS。

0 投票
1 回答
1383 浏览

python - 子进程失效,`communicate()` 挂起

在 Ubuntu 14.04 上的 python 2.7 中,我启动了一个这样的过程:

程序挂在了communicate()线上。当我打开另一个终端时,我运行ps -ef | grep ###查找子进程的 pid,我看到它是<defunct>.

为什么子程序失效,而父程序挂起communicate()?如果孩子收到后真正退出SIGINT,我怎样才能让父程序可靠地处理它而不挂起?

0 投票
1 回答
849 浏览

airflow - 在长时间运行的作业期间重新启动时,气流调度程序最终卡住

我有一个以设置--run-duration 86400(24 小时)启动的气流调度程序。在此时间之后调度程序“死亡”并将自动重新启动。只要没有在 24 小时结束前不久开始的长时间运行的作业(例如 2 小时),这项工作就可以正常工作。在这种情况下,我让一个调度程序进程处理我的长时间运行的任务,而所有其他进程都作为僵尸(已失效)。在长时间运行的作业期间,不会处理其他作业。

我正在与 LocalExecutor 合作。

我的问题是:

  • 允许调度程序无限期运行(没有--run-duration–num_runs)是否保存?
  • celery 或 dask executor 是否会发生类似的情况?
0 投票
1 回答
751 浏览

python - Daemon in python generates defunct/zombie linux process

I'm trying to spawn long processes from a flask application. So I have a main process that handles incoming web requests and from which I start daemons using the python-daemon library. Here is a minimal working example:

#xA;

When I use the linux command ps -ef while the main process is still running, after the daemon process has terminated, I see this output:

#xA;

The reason why I use the fork function before the with daemon_context: statement is that I need the main process to continue.

Should I worry about the created defunct process (I might spawn a lot of them) ? How could I avoid this zombie to appear?

0 投票
2 回答
593 浏览

docker - Docker 离开僵尸进程 (vieux/sshfs)

我有一堆服务,在撰写文件中,服务使用的 vieux/sshfs 驱动程序创建的卷很少。

服务生成的容器执行单个脚本,之后容器完成/退出并在其位置创建一个新容器 - 基本上服务一直在生成新容器。

一切顺利,除了主机中积累了异常大量的僵尸进程。当 docker 守护进程重新启动时,僵尸就消失了——一定是 docker 制造了僵尸。

"ps aux | grep 'Z'"

据我了解,卷只创建一次,服务只是使用卷的本地副本 - 不创建新的 ssh 连接并直接从远程机器读取 - 这不应该创建另一个 ssh 连接过程那将成为僵尸。

我很难找到有关该主题的信息,这让我认为我在做一些根本错误的事情。请帮忙。

0 投票
1 回答
221 浏览

python - 僵尸进程,我们又来了

我在多处理/线程/子处理方面遇到了很多困难。我基本上想做的是执行我计算机上可用的每个二进制文件,我编写了一个 python 脚本来执行此操作。但是我一直有僵尸进程(“已失效”),如果我的所有 4 个工人都处于这种状态,它们最终会陷入僵局。我尝试了很多不同的东西,但似乎什么也没做:(

这是架构的样子:

我创建了 4 名工人:

(注意我使用“生成”池,但现在我想知道它是否有用......)

每个工人都会像这样创建多个线程:

每个线程将在火狱沙箱中启动一个新进程:

我使用os.killpg()而不是process.kill()因为某些原因我的 Popen 进程的子进程没有被杀死......这可能要归功于preexec_fn=os.setsid它设置了所有后代的 gid。但是即使使用这种方法,某些进程(例如 zsh)也会引发僵尸进程,因为它看起来像 zsh 更改了它的 gid,因此 myos.killpg无法按预期工作......

我正在寻找一种方法来 100% 确定所有进程都会死掉。

0 投票
1 回答
73 浏览

postgresql - postgresql.conf 设置被忽略,因为它已失效

我正在尝试将 2 个设置添加到我的 postgresql.conf 文件(在 CentOS Greenplum Postgres 9.4 实例上)并且我收到了这条消息:

这是什么意思?

这是这些设置所在的部分: