问题标签 [child-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 回答
261 浏览

javascript - Node.js 管道——怎么写?

我需要弄清楚如何授予 exec 写入权限。

我怎样才能做到这一点?

0 投票
3 回答
20508 浏览

.net - 查找我自己的 .NET 进程的所有子进程/找出给定进程是否是我自己的子进程?

我有一个 .NET 类库,它启动了一个辅助进程,该进程一直运行,直到我处理掉对象。

由于某些程序在内存中徘徊,我决定添加一个集成测试,以确保如果我让对象进入 GC/Finalization,该过程会被停止。

但是,由于该进程是 Mercurial 命令行客户端,并且我的构建服务器已经在运行 Mercurial 作为其自身操作的一部分,因此我设想在测试开始时 Mercurial 已经在运行,或者它已启动但仍在运行的情况运行,当测试完成时,与构建服务器相关,而不是我的测试。

所以,我想确保我找到(或不是)的 Mercurial 客户端是我启动的客户端,而不仅仅是当前正在运行的任何客户端。

所以问题是这样的:

  • 如何确定我正在查看的 Mercurial 客户端是否由我的流程启动?

通过“查看”,我正在查看使用Process.GetProcesses方法,但这不是必需的。

如果另一个问题更好,“如何找到我自己进程的所有子进程”,即。更容易回答,一个也绰绰有余。

我找到了这个页面:如何知道进程的父进程 ID?,但似乎我必须给它进程名称。如果我只是给它“hg”,那么对于我正在寻找的案例来说,这个问题是不是太模棱两可了?

0 投票
1 回答
1137 浏览

node.js - 从当前 shell 中分离命令

我有一个通过 child_process.exec 执行命令的 nodejs 服务器。一个这样的命令重新启动节点实例(以及其他一些事情)。

该脚本执行以下操作:

  • 杀死节点
  • 杀死程序节点使用
  • 清除日志
  • 重启程序节点使用
  • 重启节点

我知道这不是最好的方法,但我的双手被束缚了(这是一个已发布的软件版本,我们无法在下一个版本之前进行重组)。

发生的事情是,当我运行命令时,它会杀死节点,然后脚本的其余部分就会死掉。

该节点使用的默认 shell 是 sh,并且无法更改。

我有哪些选择?

服务器以root身份运行,因此不会有任何权限问题。我想我必须以某种方式启动一个新的外壳,但我不完全确定如何做到这一点。我想成功退出当前的 shell,但这不是必需的,只要我可以将整个脚本与当前的 shell 分开即可。

0 投票
5 回答
1364 浏览

c# - 结束子进程

我有一个 C#-Application,它启动一些子进程并重定向它们的标准输入和输出。

如果我以正常方式关闭应用程序,所有子进程都将被销毁,但如果应用程序被任务管理器或其他方式杀死,我将无法关闭子进程。

它们存在并且需要大量的 CPU 能力(接近 99%)。我认为他们需要如此多的力量,因为他们的“重定向”标准输出没有被读取?

有没有办法总是关闭子进程?或者在杀死父进程后减少他们的 CPU 时间?

谢谢和最好的问候

凯文迈尔

0 投票
3 回答
2978 浏览

linux - 如何关闭 Qt 子进程并让子进程执行清理代码?

我在 Linux/Qt 中启动一个进程,然后使用 QProcess 启动一些子进程。然后最终我想优雅地关闭子进程(也就是执行一些清理代码)。

子进程正在使用QSharedMemory,现在当我调用 QProcess::close() 时,子进程正在关闭而不调用 QSharedMemory:: detach(),结果是所有进程都关闭了......但是剩下共享未清理的内存。

我有子进程的代码,代码中有函数cleanup()。父进程如何以这种方式关闭 QProcess 以便子进程执行cleanup()

0 投票
2 回答
3650 浏览

node.js - node.js 子进程

我试图弄清楚这是否是 node.js 子进程的一个不错的用例:

我有一个多人游戏,人们参与 1v1 比赛。我应该为每场比赛使用一个子进程吗?

0 投票
5 回答
630 浏览

node.js - 每个匹配的 node.js 进程

这是和以前一样的问题:

node.js 子进程

我在问我是否应该为我的 node.js 游戏在每场比赛中使用一个子进程。

但是我意识到以前我忽略了一些非常重要的细节。

游戏允许玩家以某些有限的方式操纵游戏规则。然而,这仍然会导致无限循环/内存泄漏/停顿和崩溃。

每场比赛 1 个流程是可扩展/合理的想法吗?

0 投票
1 回答
1809 浏览

node.js - NodeJS 子节点进程

我正在尝试分叉一个子进程,该子进程将从 3rd 方 api 加载数据到 mongodb 实例中。当我尝试在子进程中连接到 mongodb 时出现错误:连接 EHOSTUNREACH。这是一个本地实例,我可以在父进程中连接。这是子进程内部的上下文问题吗?

0 投票
3 回答
4679 浏览

php - 如何在 PHP 中等待进程终止(也等待相应的子进程)?

我有一个程序通常运行直到它终止,但在某些情况下,它创建了两个子进程,然后主进程退出。主进程退出后,子进程仍将运行。

我想用 PHP 调用这个程序。

最初,我使用了以下策略(不是有效的 php 代码),

但是后来我很快发现了进程实际上立即退出的错误 $status['running'] 为假,但子进程仍在运行。如何实际等待所有子进程?

第二个问题是我没有研究过 proc_terminate,但我也观察到 proc_terminate 可能无法按我的预期工作。那是因为 $process 是一个 bash 而不是真正的 python 进程吗?也可能是因为我终止的只是父主进程,而不是子进程。

有人建议我上面的代码是否是健壮的 PHP 代码?有没有更好的方法来处理这个问题?

谢谢。

=======================

更多信息,

  1. 我在 shell (CLI) 中运行这个程序,与 CGI 函数无关。所以我不需要担心 max_execution_time。

  2. 我想等待proc_open打开的主进程创建的子进程,我只会在程序中创建一个进程。

  3. 我要调用的python程序可能会挂很长时间,所以我想检查超时并终止它。

0 投票
2 回答
196 浏览

c# - 确定范围以确保收到 Process.Exited

我希望我的子进程在其父进程退出时自行整理。目前我挂在 Process.Exited 方法上:

我假设我需要保持parent在范围内,直到我不再对 Exited 事件感兴趣。是这样吗?