问题标签 [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 投票
5 回答
3224 浏览

c# - 有没有办法确保我的程序产生的后台进程在我的进程终止时被杀死?

基本上,子进程无限期地运行,直到在后台被杀死,当我的程序因任何原因终止时,我想清理它,即通过任务管理器。

目前我有一个 while (Process.GetProcessesByName("ParentProcess").Count() > 0) 循环并在父进程没有运行时退出,但它看起来很脆弱,如果我希望它在 Visual 中的调试器下工作工作室我必须添加“ParentProcess.vshost”或其他东西。

有没有办法确保子进程结束而不需要子进程知道父进程?我更喜欢托管代码中的解决方案,但如果没有,我可以 PInvoke。

编辑:传递 PID 似乎是一个更强大的解决方案,但出于好奇,如果子进程不是我的代码而是我无法控制的某个 exe 怎么办?有没有办法防止可能创建孤立的子进程?

0 投票
2 回答
10900 浏览

visual-studio - 可以让 Visual Studio 调试 WinDBG 等子进程吗?

这类似于这个问题,但我想稍微充实一下。(我是新来的,如果我应该对上一个问题做一个“颠簸”的回答,请告诉我。)

在 WinDBG 中,我可以使用.childdbg 1命令告诉它在生成子进程时中断,或者我可以使用-o命令行选项启动它。这在某些情况下非常有用,所以令人惊讶的是(据我所知)Visual Studio 不支持它。似乎应该很容易清除DEBUG_PROCESS_ONLY_THIS_PROCESSCreateProcess() 上的标志,并且 VS 已经支持调试多个进程。

那么,我是否缺少 Visual Studio 中的某些选项来启用此功能?如果没有,他们为什么选择不支持它有技术上的理由吗?

0 投票
4 回答
106977 浏览

c - 多个子进程

有人可以帮助我了解如何创建具有相同父级的多个子进程以完成特定工作的“某些”部分吗?

例如,应用于子进程的外部排序算法;每个子进程对一部分数据进行排序,最后父进程合并它们。

编辑:也许我应该提到带有循环的分叉多个子进程..

0 投票
4 回答
2622 浏览

c - 多个子进程+从流中读取

参考我的最后一个问题(多个子进程),我现在正在尝试使用多个子进程进行外部排序实现。

但当然,由于 fscanf,这段代码会从 inputfile 输出相同的排序整数序列。例如,如果输入文件的开头包含 5 1 4,那么它会输出:

(第一个孩子) 1 4 5
(第二个孩子) 1 4 5

(有两个子进程).. 因为 fscanf 从输入流的开头开始读取整数。

我现在的问题是如何继续从前一个子进程离开的点开始读取数字?例如,如果输入文件包含 5 1 4 8 5 10,那么它可以输出:

(第 1 个孩子) 1 4 5

(第二个孩子) 5 8 10

提前致谢;)

0 投票
3 回答
33106 浏览

linux - 如何让 Perl 等待使用 system() 在后台启动的子进程?

我有一些 Perl 代码为多个参数执行 shell 脚本,为了简化,我假设我的代码如下所示:

在那之后我想做更多的事情,但我找不到等待所有子进程完成后再继续的方法。

将代码转换为使用 fork() 会很困难。没有更简单的方法吗?

0 投票
4 回答
467 浏览

c#-2.0 - Process.Start() 方法的问题

我有一个 child.exe,它接受命令行参数。我需要从另一个 parent.exe 应用程序启动该 child.exe,并且需要将不同的命令行参数传递给该 child.exe。我尝试使用以下代码。

但是这里的问题是每次我调用 process.Start() 时,都会创建一个单独的 exe。我只需要一个运行的 child.exe 实例,它可以接受不同的命令行参数。任何帮助表示赞赏。

0 投票
3 回答
4344 浏览

debugging - 如何在 OS X 上的进程启动时自动将调试器附加到进程?

我有一个生成辅助进程的进程。有时我需要在第二个进程中调试启动失败。

在 Windows 上,我会使用Image File Execution Options, 或ntsd -o. 但是,我不知道如何在 OS X 上使用 GDB 执行此操作。

0 投票
1 回答
1222 浏览

java - 调用 Thread.sleep() 时子进程停止(在 Windows 下的 Java 中)

我有一个使用 ProcessBuilder 启动外部进程 (Internet Explorer) 的 Java 应用程序。奇怪的是,当父 Java 线程调用 Thread.sleep 时,这个子进程会冻结。并非所有进程都会发生这种情况,例如 Firefox,但 IE 会一直发生。

有任何想法吗 ?

PS 我试过 Robot.delay() 具有相同的效果

0 投票
3 回答
4929 浏览

c - 在 Unix 系统上创建子进程?

我正在尝试在另一个进程中创建一个子进程。我正在用 C 语言编写这两个程序。首先,我编写了一个虚拟进程,它将成为子进程。它所做的只是在屏幕上写一个字符串。它自己运作良好。然后我编写另一个程序,它将成为父进程。但是,我不能让它发生。我正在尝试同时使用 fork 和 execl 函数,但我失败了。我还希望子进程在父进程终止之前不会终止。

父进程应该怎么写?

谢谢。

下面是子进程的代码:

这是父进程:

0 投票
2 回答
317 浏览

performance - 在 Apache 前面安装 Lighttpd 的另一个好处

我在一个网站上读到,在 Apache 前面安装 Lighttpd 的另一个好处是子进程数量较少。Lighttpd 将处理保持活动和客户端请求,而 Apache 的子进程可以更快地为动态页面提供服务,因为 Lighttpd 和 Apache 之间的通信延迟非常低。我试图找到链接,但我很难。

鉴于我已经有一个专门的 Lighttpd 服务器用于我的静态内容(img、vid、css、js、html 等)和另一个专用的 Apache 服务器用于我的动态页面(php),如果它真的实现了,我想实现这个技术有一些性能提升。

1) 是否有人出于与上述相同的目的将 Lighttpd 放在 Apache 前面?
2)这真的有性能提升吗?多少钱?
3) Lighttpd 处理对 Apache 的请求的开销怎么样,真的值得吗?

谢谢!