问题标签 [zombie-process]

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 回答
1774 浏览

fedora - init 从不收获僵尸/失效进程

在我的内核为 2.6.18 的 Fedora Core 9 网络服务器上,init 没有收获僵尸进程。如果不是进程表最终达到无法分配新进程的上限,这将是可以忍受的。

的样本输出ps -el | grep 'Z'

这是操作系统错误吗?配置错误?我正在寻找有关此问题根源的灵感。谢谢

0 投票
3 回答
1524 浏览

perl - 如何避免在 Apache 1.3 下运行的 Perl CGI 脚本中出现僵尸?

各种 Perl 脚本(服务器端包含)正在调用网站上具有许多功能的 Perl 模块。 编辑: 脚本使用use lib从文件夹中引用库。在繁忙时期,脚本(而不是库)会变成僵尸并使服务器超载。

服务器列出:

我有数百个实例。

编辑: 我们没有使用 fork、system 或 exec,除了 SSI 指令

据我所知,在这种情况下 httpd 本身将是该进程的所有者。MaxRequestPerChild 设置为 0,这不应该让父进程在子进程完成之前死亡。

到目前为止,我们认为暂时挂起一些脚本有助于服务器处理已失效的进程并防止其崩溃,但毫无疑问,僵尸进程仍在形成。显然gbacon似乎与他的理论最接近事实,即服务器无法应对负载。

什么可能导致 httpd 放弃这些进程?是否有任何最佳实践来防止这些情况发生?

谢谢

答案: 重点是 Rob。正如他所说,生成 SSI 的 CGI 脚本不会处理这些 SSI。SSI 的评估发生在 Apache 1.3 请求周期中 CGI 的运行之前。Apache 2.0 及更高版本已修复此问题,以便 CGI 可以生成 SSI 命令。

由于我们在 Apache 1.3 上运行,因此对于每个页面视图,SSI 都会变成无效进程。尽管服务器试图清除它们,但由于运行任务太忙而无法成功。结果,服务器翻倒并没有响应。作为一个短期解决方案,我们审查了所有 SSI 并将一些进程移至客户端以释放服务器资源并给它时间进行清理。后来我们升级到 Apache 2.2。

0 投票
2 回答
1944 浏览

ruby - 当我生成进程时出现僵尸进程

我有一段代码,我在其中生成子进程以提高效率。但是,它们似乎会创建各种僵尸进程,这些进程会阻塞套接字并关闭站点。

1)为什么这会创建僵尸进程?2)我如何编写代码以确保在进程变成僵尸之前将其杀死?

0 投票
1 回答
3783 浏览

c - 如何在 Linux 上检测已失效的进程?

我有一个用 C 语言编写的父进程和一个子进程。在父进程的某个地方,HUP 信号被发送给子进程。我希望我的父进程检测孩子是否死了。但是当我发送 SIGHUP 时,子进程就变成了僵尸。如何检测子进程是否是父进程中的僵尸?我尝试下面的代码,但它没有返回我想要的结果,因为子进程仍然存在但它已经失效。

还有一个问题; 我可以在不杀死父母的情况下杀死僵尸孩子吗?

谢谢。

0 投票
3 回答
8651 浏览

python - Python-daemon 不会杀死它的孩子

使用python-daemon时,我正在创建子进程,如下所示:

当我用 Ctrl-C 或 SIGTERM 等杀死父守护进程(即不是 Worker)时,孩子不会死。一个人如何杀死孩子?

我的第一个想法是使用atexit杀死所有的工人,就像这样:

然而,守护进程的子进程处理起来很棘手,我有义务就如何完成这件事提出想法和意见。

谢谢你。

0 投票
1 回答
8345 浏览

linux - 在 linux bash 脚本中杀死一个 10 分钟前的僵尸进程

我一直在修改yukondude的正则表达式答案,但收效甚微。我试图杀死超过 10 分钟的进程。我已经知道进程 ID 是什么。我每 10 分钟循环一次数组,看看是否有任何挥之不去的 procs 存在并且需要被杀死。有人对此有任何快速的想法吗?

0 投票
3 回答
2484 浏览

sql-server - ADO.NET 僵尸事务错误?如何确保命令不会在隐式事务上执行?

例如,当死锁发生时,后面的 SQL 命令会成功执行,即使它们已经分配了回滚后的 SQL 事务。看来,它是由在 SQL Server 上创建的新隐式事务引起的。

有人可能期望 ADO.NET 会抛出一个异常,即命令正在僵尸事务上执行。但是,不会引发此类异常。(我认为这是 ASP.NET 中的一个错误。)此外,由于僵尸事务,最终会Dispose()默默地忽略回滚。

任何想法,我如何确保没有人可以对隐式事务执行命令?或者,如何检查交易是僵尸?我发现Commit()Rollback()检查了僵尸交易,但是我可以打电话给他们进行测试:)

我还发现阅读 IsolationLevel 也会进行检查,但我不确定transaction.IsolationLevel.ToString();未来的优化器是否不会删除简单的调用。或者您知道任何其他安全方式调用 getter(不使用反射或 IL 发射)吗?

编辑:Remus Rusanu 指出这种情况通常不会发生。是的,这是真的。它通常发生在代码中存在错误时。在我们的例子中,finally 语句中有一些日志记录例程试图将失败存储到数据库中。现在,我正在尝试找到一种解决方案,以便将来检测此类错误。由于这些错误很难测试。如果 ADO.NET 会检查提供的事务是否为僵尸,则更容易发现此错误。我发现了两种可能性:

  1. 关闭隐式事务的创建 - 我不确定这是否可能。
  2. 确保在执行任何命令之前,检查僵尸事务将运行。
0 投票
2 回答
17122 浏览

zombie-process - 什么是僵尸,是什么原因造成的?有僵尸进程和僵尸对象吗?

我可以找到关于僵尸的问题,但没有一个可以直接解决它们是什么以及它们为什么以及如何发生。有几个在回答特定问题的情况下解决了僵尸进程,但没有解决原因。

还有关于僵尸进程的问题和关于 Objective-C/Cocoa 相关的僵尸对象的问题。有什么区别或它们之间有什么关系?Mac/iPhone 上的“EXEC_BAD_ACCESS”(或其他平台上的类似错误)是僵尸的同义词吗?

如何预防僵尸,是否有任何最佳实践可以帮助避免僵尸?

将这些信息放在一个地方会很有帮助。如果可能,此问题旨在与平台/语言无关。

0 投票
1 回答
1624 浏览

python - python popen pipe的第一个进程不能被杀死

我正在使用此代码

p1终止时p2也终止。

问题是:

如果我手动关闭 p2(它是 mplayer),rtmpdump/p1 仍在运行。我尝试了各种类似上面的东西,但我仍然无法杀死它。我尝试添加close_fds=True.

所以可能 rtmpdump 仍然尝试写入标准输出。但是为什么这会导致 kill() 失败?

完整源代码:http: //github.com/solsticedhiver/arte-7.py

0 投票
5 回答
4636 浏览

php - BOT/蜘蛛陷阱的想法

我有一个客户,其域似乎受到 DDoS 的严重打击。在日志中,具有随机 IP 的用户代理看起来很正常,但他们翻阅页面的速度太快而无法成为人类。他们似乎也没有要求任何图像。我似乎找不到任何模式,我怀疑它是一群 Windows 僵尸。

客户端过去曾遇到过垃圾邮件攻击问题——甚至不得不将 MX 指向 Postini 以获取 6.7 GB/天的垃圾邮件来阻止服务器端。

我想在 robots.txt 不允许的目录中设置一个 BOT 陷阱……只是以前从未尝试过这样的事情,希望那里有人对陷阱 BOT 有创意!

编辑:我已经有很多想法来捕捉一个..当它落入陷阱时该怎么办。