提问人:SirLouen 提问时间:8/17/2023 更新时间:8/18/2023 访问量:113
Puppeteer 正在留下大量已失效的镀铬进程
Puppeteer is leaving a massive amount of chrome defunct processes
问:
我目前正在使用 PHP 的 puppeteer 改编版,称为 puphpeteer。它运行良好,使用一个名为 rialto-php 的库(已弃用,但它仍然运行良好),它能够从 PHP 管理 Node 资源,这非常简洁。我正在使用 puppeteer 20、PHP 8.2 和 Node 16.20 的最新更新。
但是我找不到方法来理解为什么每次调用它都会创建 6 个 chrome 进程,并且在进程结束时它们都结束了
614 ? 00:00:00 chrome <defunct>
628 ? 00:00:00 chrome <defunct>
629 ? 00:00:00 chrome <defunct>
682 ? 00:00:00 chrome <defunct>
696 ? 00:00:00 chrome <defunct>
718 ? 00:00:00 chrome <defunct>
我还使用最新的 chrome-stable 和 Puppeteer 来讨论这些参数
$browser = $puppeteer->launch([
'executable_path' => 'google-chrome-stable',
'args' => ['--no-sandbox', '--disable-setuid-sandbox'],
]);
这是该函数的要点,它只是从我的页面获取 iFrame URL。https://gist.github.com/SirLouen/8c274ae588eece30a14b43e7af4880f8
你对我如何确定这个问题的罪魁祸首有什么想法吗?
第一件事是我正在考虑将此代码转换为 JS 并直接在原始 puppeteer 库上对其进行测试,但我已经与使用 puphpeteer 的其他人进行了评论,他们没有发现这个已失效的问题。
答:
0赞
SirLouen
8/18/2023
#1
这是直接从节点运行的 JS 中的等效代码。我花了一段时间,因为我以前从未使用过 node,而且我必须阅读文档。
https://gist.github.com/SirLouen/6c2b540d0f22d234cc9a4df9e3c5bf26
但是在运行它之后,也以大量 chrome 失效的进程结束
结论:问题未解决,但万一在某个地方发现这个问题,我会留下我的结果。在这些条件下,傀儡师中的某处可能存在错误。我将在他们的错误跟踪器中报告。
评论
finally