问题标签 [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.
javascript - Node.js 管道——怎么写?
我需要弄清楚如何授予 exec 写入权限。
我怎样才能做到这一点?
.net - 查找我自己的 .NET 进程的所有子进程/找出给定进程是否是我自己的子进程?
我有一个 .NET 类库,它启动了一个辅助进程,该进程一直运行,直到我处理掉对象。
由于某些程序在内存中徘徊,我决定添加一个集成测试,以确保如果我让对象进入 GC/Finalization,该过程会被停止。
但是,由于该进程是 Mercurial 命令行客户端,并且我的构建服务器已经在运行 Mercurial 作为其自身操作的一部分,因此我设想在测试开始时 Mercurial 已经在运行,或者它已启动但仍在运行的情况运行,当测试完成时,与构建服务器相关,而不是我的测试。
所以,我想确保我找到(或不是)的 Mercurial 客户端是我启动的客户端,而不仅仅是当前正在运行的任何客户端。
所以问题是这样的:
- 如何确定我正在查看的 Mercurial 客户端是否由我的流程启动?
通过“查看”,我正在查看使用Process.GetProcesses方法,但这不是必需的。
如果另一个问题更好,“如何找到我自己进程的所有子进程”,即。更容易回答,一个也绰绰有余。
我找到了这个页面:如何知道进程的父进程 ID?,但似乎我必须给它进程名称。如果我只是给它“hg”,那么对于我正在寻找的案例来说,这个问题是不是太模棱两可了?
node.js - 从当前 shell 中分离命令
我有一个通过 child_process.exec 执行命令的 nodejs 服务器。一个这样的命令重新启动节点实例(以及其他一些事情)。
该脚本执行以下操作:
- 杀死节点
- 杀死程序节点使用
- 清除日志
- 重启程序节点使用
- 重启节点
我知道这不是最好的方法,但我的双手被束缚了(这是一个已发布的软件版本,我们无法在下一个版本之前进行重组)。
发生的事情是,当我运行命令时,它会杀死节点,然后脚本的其余部分就会死掉。
该节点使用的默认 shell 是 sh,并且无法更改。
我有哪些选择?
服务器以root身份运行,因此不会有任何权限问题。我想我必须以某种方式启动一个新的外壳,但我不完全确定如何做到这一点。我想成功退出当前的 shell,但这不是必需的,只要我可以将整个脚本与当前的 shell 分开即可。
c# - 结束子进程
我有一个 C#-Application,它启动一些子进程并重定向它们的标准输入和输出。
如果我以正常方式关闭应用程序,所有子进程都将被销毁,但如果应用程序被任务管理器或其他方式杀死,我将无法关闭子进程。
它们存在并且需要大量的 CPU 能力(接近 99%)。我认为他们需要如此多的力量,因为他们的“重定向”标准输出没有被读取?
有没有办法总是关闭子进程?或者在杀死父进程后减少他们的 CPU 时间?
谢谢和最好的问候
凯文迈尔
linux - 如何关闭 Qt 子进程并让子进程执行清理代码?
我在 Linux/Qt 中启动一个进程,然后使用 QProcess 启动一些子进程。然后最终我想优雅地关闭子进程(也就是执行一些清理代码)。
子进程正在使用QSharedMemory,现在当我调用 QProcess::close() 时,子进程正在关闭而不调用 QSharedMemory:: detach(),结果是所有进程都关闭了......但是剩下共享未清理的内存。
我有子进程的代码,代码中有函数cleanup()
。父进程如何以这种方式关闭 QProcess 以便子进程执行cleanup()
?
node.js - node.js 子进程
我试图弄清楚这是否是 node.js 子进程的一个不错的用例:
我有一个多人游戏,人们参与 1v1 比赛。我应该为每场比赛使用一个子进程吗?
node.js - 每个匹配的 node.js 进程
这是和以前一样的问题:
我在问我是否应该为我的 node.js 游戏在每场比赛中使用一个子进程。
但是我意识到以前我忽略了一些非常重要的细节。
游戏允许玩家以某些有限的方式操纵游戏规则。然而,这仍然会导致无限循环/内存泄漏/停顿和崩溃。
每场比赛 1 个流程是可扩展/合理的想法吗?
node.js - NodeJS 子节点进程
我正在尝试分叉一个子进程,该子进程将从 3rd 方 api 加载数据到 mongodb 实例中。当我尝试在子进程中连接到 mongodb 时出现错误:连接 EHOSTUNREACH。这是一个本地实例,我可以在父进程中连接。这是子进程内部的上下文问题吗?
php - 如何在 PHP 中等待进程终止(也等待相应的子进程)?
我有一个程序通常运行直到它终止,但在某些情况下,它创建了两个子进程,然后主进程退出。主进程退出后,子进程仍将运行。
我想用 PHP 调用这个程序。
最初,我使用了以下策略(不是有效的 php 代码),
但是后来我很快发现了进程实际上立即退出的错误 $status['running'] 为假,但子进程仍在运行。如何实际等待所有子进程?
第二个问题是我没有研究过 proc_terminate,但我也观察到 proc_terminate 可能无法按我的预期工作。那是因为 $process 是一个 bash 而不是真正的 python 进程吗?也可能是因为我终止的只是父主进程,而不是子进程。
有人建议我上面的代码是否是健壮的 PHP 代码?有没有更好的方法来处理这个问题?
谢谢。
=======================
更多信息,
我在 shell (CLI) 中运行这个程序,与 CGI 函数无关。所以我不需要担心 max_execution_time。
我想等待proc_open打开的主进程创建的子进程,我只会在程序中创建一个进程。
我要调用的python程序可能会挂很长时间,所以我想检查超时并终止它。
c# - 确定范围以确保收到 Process.Exited
我希望我的子进程在其父进程退出时自行整理。目前我挂在 Process.Exited 方法上:
我假设我需要保持parent
在范围内,直到我不再对 Exited 事件感兴趣。是这样吗?