问题标签 [spawn]

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

python - Python:生成 sudo 进程(在新终端中),等到完成

编辑:我的最终代码是这样的:


原始问题:

我正在编写一个简单的包装器,在最终运行 LuaLaTeX 之前“即时”安装任何丢失的包。它主要工作,但接近尾声,我必须运行命令

此外,由于不能保证 LaTeX 编辑器允许用户输入,我必须调用一个新终端来执行此操作,以便他们输入他们的 sudo 密码。

我基本上已经弄清楚了:要么

或者

唯一的问题是,这条线不会等到生成的终端进程完成。事实上,它会立即继续到下一行(运行实际的 LuaLaTeX),甚至在用户输入密码或下载包之前!

据我了解,这是因为 sudo 子进程立即完成。有没有办法确保 tlmgr 进程在继续之前完成?

0 投票
2 回答
624 浏览

macos - 如何将终端切换到使用 NSTask 启动的进程的新子进程?

我用这里描述的方法做了一个伪终端:http: //lists.apple.com/archives/student-dev/2005/Mar/msg00019.html

终端本身运行良好。无论如何,问题是终端无法切换到子进程。例如,我使用 启动bashNSTask如果我ftp在 中执行bash,它会自动停止。

如果我尝试继续ftpwith fg,它会安静地终止。(我用活动监视器检查了这个)

我认为它需要更多的基础设施(完成伪终端)才能将控制权切换到子进程。这样做需要什么?

0 投票
1 回答
1206 浏览

ruby - Process::detach 和 Process::wait 是否互斥(Ruby)?

我正在重构我的 Ruby on Rails 服务器(在 Linux 上运行)中的一些并发处理以使用 Spawn。Spawn::fork_it文档声称分叉的进程在分离后仍然可以等待:https ://github.com/tra/spawn/blob/master/lib/spawn.rb (第 186 行):

但是,RubyProcess::detach文档说你不应该这样做:http ://www.ruby-doc.org/core/classes/Process.html

某些操作系统会保留已终止子进程的状态,直到父进程收集该状态(通常使用 wait() 的某些变体。如果父进程从未收集此状态,则子进程将作为僵尸进程保留。Process::detach 通过以下方式防止这种情况发生设置一个单独的 Ruby 线程,其唯一的工作是在进程终止时获取进程 pid 的状态。仅当您不打算显式等待子进程终止时才使用分离。

然而,Spawn::wait有效地允许您通过包装来做到这一点Process::wait。附带说明一下,我特别想使用该Process::waitpid2方法等待子进程,而不是使用该Spawn::wait方法。

分离并等待在 Linux 上不能正常工作吗?我担心这可能会导致分离的收割线程和等待的父进程之间出现竞争条件,即谁先收集子状态。

0 投票
2 回答
1183 浏览

python - 动态计算要生成的进程数

我在 year_queue 中有一个大约 15 年的列表,我需要每年生成一个进程。但是根据我运行代码的服务器,处理器的数量会有所不同。如何根据服务器中的处理器数量动态改变变量 num_processes?

如果我设置 num_processes > 处理器数量,它会相应地自动生成吗?当我对此进行测试时 - 它会创建 15 个进程并在它们之间分配 CPU 能力。我正在寻找一种方法来首先创建“n”个进程,其中 n = 服务器中的处理器数,然后随着每个进程完成,下一个进程被生成。

有人有同样的问题吗?


0 投票
1 回答
278 浏览

ruby-on-rails-3 - 在 heroku 上生成 gem - “PGError:服务器意外关闭了连接”

我在 rails 3 应用程序中使用 Spawn gem - 这是https://github.com/rfc2822/spawn上的 rails3-adapted fork

我的应用程序部署在 heroku 上,当我尝试生成时,我遇到了这个失败:

按照 spawn 文档的建议,我的 config/database.yml 中有这个选项:

你觉得和这个有关系吗?

有点不知所措......在我去调查之前,有人知道是什么原因造成的吗?欢呼,最大

0 投票
3 回答
3705 浏览

java - 如何获取生成的 java 进程的 PID

我正在编写几个 java 程序,在完成我想做的任何事情后,我需要在一个单独的 JVM 中杀死/清理。为此,我需要获取我正在创建的 java 进程的 PID。

0 投票
1 回答
233 浏览

javascript - 在 ruby​​ 中将输出打印到标准输出时如何使用回调

我正在编写用于监视服务器状态的脚本。我可以用 javascript 编写代码,但我必须用 ruby​​ 编写代码。

在 javascript 中,可以像这样使用 node.js 来完成。

此代码每秒执行 iostat 命令并输出到控制台。如何在 ruby​​ 中实现相同的功能?换句话说,我想在用 ruby​​ 打印 stdout 时使用回调。

0 投票
2 回答
151 浏览

erlang - 监督重启进程的子进程

我有这样的结构

在这个结构中,child1 受到监督并产生 child2。我需要的是能够在 child2 崩溃/退出时重新启动 child1。实现这一目标的最佳方法是什么?

0 投票
3 回答
863 浏览

node.js - coffee script cakefile task not finishing

I have the following cakefile task to run selenium tests which runs successfully and gets to the end of the tests but doesn't exit.

Is there a way I can tell the task to finish? I get the 'completed Selenium Tests' logged in the console.

0 投票
2 回答
3316 浏览

python - Python中无限期的守护进程生成

我正在尝试构建一个 Python 守护程序来启动其他完全独立的进程。

一般的想法是对于给定的 shell 命令,每隔几秒轮询一次,并确保该命令的恰好k个实例正在运行。我们保留一个 pidfiles 目录,当我们轮询时,我们删除 pids 不再运行的 pidfiles 并启动(并为其创建 pidfiles),但是我们需要获取其中的k个进程。

子进程也需要完全独立,这样如果父进程死了,子进程就不会被杀死。从我读过的内容来看,似乎没有办法用subprocess模块做到这一点。为此,我使用了这里提到的代码段:

http://code.activestate.com/recipes/66012-fork-a-daemon-process-on-unix/

我做了一些必要的修改(你会看到附加代码段中注释掉的行):

  1. 原来的父进程无法退出,因为我们需要启动器守护进程无限期地持续存在。
  2. 子进程需要以与父进程相同的 cwd 开始。

这是我的 spawn fn 和一个测试:

在这种情况下,事情似乎工作正常,即使父进程被杀死,子进程仍然存在。但是,我仍然遇到原始父母的产卵限制。在大约 650 次生成之后(不是同时,子进程已经完成),父进程因错误而窒息:

有什么方法可以重写我的 spawn 函数,以便我可以无限期地生成这些独立的子进程?谢谢!