问题标签 [fork]

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

php - 为什么我的父进程不等待其子进程完成执行?

我有最基本的脚本:

当我运行它时,输出总是“孩子完成”。我在 lighttpd 服务器上运行它。

0 投票
2 回答
1344 浏览

svn - 在 Google 代码(或任何其他 SVN 托管)上分叉

githubbitbucket这样的网站提供了一个优秀/有用的“分叉”项目功能。这允许人们简单地分叉一个项目并处理他们想要的功能(在将其提交给投影仪所有者并获得提交访问权限之前)。

对于SVN项目(尤其是托管在Google Code上但仍在使用 SVN的各种项目) ,如何最好地实现此工作流程?

澄清:我知道 svn diff,但想要一个解决方案,我可以在将更改提交回作者(SVN repo 的所有者)之前进行几次间歇性提交。使这个“分叉”像单击按钮一样简单(我想知道 github/bitbucket 是否会具有自动克隆 SVN 存储库的功能)。

0 投票
2 回答
45964 浏览

c - 在父进程恢复执行 UNIX 之前等待所有子进程

在我的程序中,我在有限的 while 循环中分叉(并行)子进程并在每个子进程上执行 exec。我希望父进程仅在所有子进程终止后才能恢复执行(此 while 循环之后的点)。我该怎么做?

我尝试了几种方法。在一种方法中,我在 while 循环之后让父级暂停,并仅在 waitpid 返回错误 ECHILD(没有子级剩余)时从 SIGCHLD 处理程序发送一些条件,但我在这种方法中面临的问题甚至在父级完成所有进程的分叉之前,retStat 变为-1

0 投票
3 回答
1989 浏览

php - 如何在 php 中将视频转换过程“分叉”到后台?

我有一个批量 Flash 上传脚本,可以将视频文件上传到目录。简单的。上传完成后,它会为该文件创建一条 mysql 记录,然后继续处理队列中的下一个文件。

在此之前,我希望它调用一个后台进程,将上传的 avi avi 文件转换为与 ipod 兼容的 mp4 文件,并生成一些预览缩略图。正如您可以想象的那样,这需要一些时间......我可以简单地将转换代码放在文件上传器中......但它会为每个文件挂起 10-20 分钟,这是一个诺诺(甚至你它是一个仅限管理员的功能)。

所以我希望它在后台分叉转换过程,并在转换文件的同时进行下一次上传。

像这样的东西可以完成这项工作,还是我实际上必须使用 php fork 函数?

0 投票
1 回答
721 浏览

fork - 哪些系统不支持 waitpid 的 WNOHANG 选项?

我有一个用于管理子进程的库,该库依赖于将 POSIX WNOHANG 选项传递给 waitpid 以对进程执行非阻塞等待。据说并不是所有的系统都支持这个选项,但是我已经有一段时间没有研究过这些系统了。哪些系统不支持此选项?我想知道以便我可以尝试为这些系统找到解决方法,或者我可以决定不针对这些系统。

0 投票
3 回答
8918 浏览

perl - Perl 如何在并行处理中共享全局变量?

我试图使用并行分叉管理器模块访问并行进程上的全局变量。程序结束时全局变量仍然保持不变..如何实现这一点?是否有可能?

0 投票
4 回答
4190 浏览

linux - 在 system() 之后获取子 PID

据我了解,该system()调用在内部使用fork()exec()但将它们封装起来以便于处理。

是否可以从调用创建的子进程中获取 PID system()

目标:我希望能够在某个超时后对任何子进程进行 SIGINT。system()我可以使用fork()and重建函数exec()。但我所需要的只是孩子的 PID,也许使用有捷径system()

0 投票
2 回答
11161 浏览

ruby-on-rails - 为 Rails 项目分叉 gem

在这种情况下,我发现自己两次:我在我的系统上安装了一个 gem,并从我的 Rails 项目中开始使用它。最终我需要对那个宝石做一些改变。我应该如何进行?

理想情况下,我想在某个地方查看该 gem 的源代码,例如 ~/third_party/gems,然后处理它并让我的 Rails 项目使用它。那可能吗?

在所有情况下,宝石都在 github 上,所以我可能会在 github 上找到它,克隆它,创造机会并维护我自己的分支。我想我会直接在我的服务器上使用 gem install 安装该分支。那有意义吗?

0 投票
6 回答
15401 浏览

c++ - fork() 后如何处理 execvp(...) 错误?

我做常规的事情:

  • 叉子()
  • 子进程中的 execvp(cmd, )

如果 execvp 因为没有找到 cmd 而失败,我怎么能在父进程中注意到这个错误?

0 投票
3 回答
1059 浏览

linux - 如何等待进程子?

我做通常的 fork + exec 组合:

是否可以等到孩子崩溃或开始等待读取(...)?