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

node.js - nodejs:多次运行长命令

我有一个命令需要执行三遍。它生成大量输出到标准输出,大约需要一分钟。三个命令完成后,应该执行第四个(不同的)命令。shell 脚本如下所示:

我正在考虑child_process.exec()在循环中使用,但它会缓冲标准输出直到它完成(对吗?)。我需要立即向用户提供反馈,因此将标准输出缓冲一秒钟以上并不是一个好主意。所以我需要使用child_process.spawn(),但异步处理让我有点发疯。我正在考虑将 spawn 调用放在这样的函数中:

我认为这会起作用。但是有更好的方法吗?我在unix,也许是windows系统。

0 投票
1 回答
2554 浏览

cocos2d-iphone - 像 CCSpawn 这样的 CCSequence 使用来自不同类的函数

我尝试在我的 GameLayer 中使用一些功能。第一个 - 来自另一个类,第二个 - 来自 GameLayer 类,但 CCSequence 像 CCSpawn 一样运行,而不是序列。另外,它们都在 GameLayer 中完美运行。

在游戏层中

在rolypoly类

0 投票
1 回答
1360 浏览

node.js - 在 Node.js 中生成进程的正确语法是什么?

我试图跟随

http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options

在努力做

我试过了

但我收到以下错误

我究竟做错了什么?

0 投票
1 回答
1251 浏览

shell - 在 MakeFile 中监听后台进程的退出代码

解决 了我需要在 MakeFile 中生成后台进程并考虑它们的退出代码。设想:

  • 在后台产生了几个进程。
  • MakeFile 继续评估(并且不想在某个循环中检查生成的进程 PID 等等)
  • 某些进程以非零退出代码退出
  • 使实用程序以非零退出代码退出

自然地,我考虑使用command &在后台生成一个进程。

问题:如果指定了命令,command &则 make 进程不会跟踪它的退出代码。

样品 1

样品 2

示例 1 显示 make 实用程序不考虑后台进程的退出代码。

PS 请不要建议存储生成的进程 PID 并在循环中检查它们,并有一些sleep延迟等等。需要继续评估 MakeFile 并以非零代码自动退出。

解决方案

所以我们可以创建一系列命令来处理后台进程的退出状态。

0 投票
2 回答
1247 浏览

python - Twisted Python:无法写入正在运行的衍生进程

我的问题是,在产生一个进程之后,子进程正在循环以从其标准输入中获取数据。我想使用 Echo.Process.pipes[0].write(data) 或 Echo.Process.writeToChild(0,data) 向它写入新数据,但两者都不起作用。有人会解释发生了什么吗?或者我该如何解决这个问题?

这是我得到的错误:

谢谢你,

0 投票
2 回答
1076 浏览

java - 如何使用 PTY 在 Scala 中生成进程?

在红宝石中,我有:

如何在 scala/java 中做到这一点?

0 投票
3 回答
1605 浏览

c - 为什么 windows 生成进程有时会触发错误 STATUS_SXS_ASSEMBLY_NOT_FOUND?

所以,我有一小段 C 代码在 Windows 盒子上运行,上面写着:

我围绕这个写了一些单元测试,我的“命令”是 C:\windows\system32\ipconfig.exe 并且它可以工作,没问题。

试图将其用于应用程序启动器... doo doo。因有用的错误而失败:

好的...四处搜索我发现错误代码是STATUS_SXS_ASSEMBLY_NOT_FOUND,当我尝试启动notepad.exe时也会发生这种情况。缺少程序集?

为什么会这样?

我该如何解决它?

我只是在这里猜测,但我怀疑它与需要在 _spawnve() 中设置 PATH 变量有关,但我不知道它应该是什么。我尝试通过路径,但这似乎没有帮助。运行此代码:

产量:

IE。我传入 argv[0] 和一个路径值;不是其他环境变量或参数。

有任何想法吗?

--

编辑:

因此,似乎发生此错误是因为当我使用 _spawnve() 调用命令时未正确设置 PATH。

这通过调用 _spawnv() 或 _spawnvpe() 变得明显,这两者似乎都可以正常工作。

但是,这并没有真正帮助我,因为我需要在应用程序运行时为其指定一个额外的 PATH 组件。将 PATH=... 传递给 _spawnvpe() 会导致相同的错误,显然 _spawnv 没有被使用,因为它不允许您指定 PATH。

所以真的,这个问题的答案是:因为 PATH 变量是错误的。

...但我仍然不知道它应该是什么。似乎没有我在任何地方都可以找到的可行示例。我将接受任何链接到使用 _spawnve() 或 _spawnvpe() 的编码示例并将 PATH 变量传递给它(并且工作)的答案。

编辑#2:

真的。不,实际上,这不起作用。这是它不起作用的示例。忘记链接到一个有效的例子;只需修改我的示例并发布一个差异,即 1) 通过 PATH 和 2) 运行没有错误。

NB。想看看它的工作吗?更改为 _spawnv() 或将 env 值设为 NULL,它运行得很好。

输出:

0 投票
1 回答
16000 浏览

expect - 期望命令在 bash 脚本中不起作用

我有一个与期望相关的问题。

当我运行 abc.sh 时,其中包括以下几行

它工作正常

但是当我在我的运行脚本中使用类似的代码时它不起作用


它给出了错误

./script.sh:第 62 行:意外标记附近的语法错误}' ./script.sh: line 62:}'

我认为这是因为我没有在脚本顶部包含 #!/usr/bin/expect 但如果我使用它并执行我的脚本,它不会做任何事情并在执行后在终端中显示所有代码。那么我们可以同时包含 #!/usr/bin/expect 和 #!/bin/bash 吗?

问候,阿迪亚

0 投票
1 回答
113 浏览

c - 如何将 _spawnvpe() 与自定义 PATH 值一起使用?

我在(http://stackoverflow.com/questions/10969488/why-does-windows-spawn-process-sometimes-trigger-error-status-sxs-assembly-not-f)中问了一个相关问题,但我'恐怕它会被问题的复杂性弄糊涂,所以,这是一个非常简单的版本:

这是调用 _spawnvpe 的示例,手动传递 PATH 值。

它不起作用。它出错并且不会运行记事本。

更改为 _spawnv 或不传递 PATH 值使其工作。但是,_putenv 的文档清楚地说明了 env 值的格式是 KEY=VALUE。

我如何使它工作?

请具体说明,并提供以下代码的差异或完整副本,包括修复。

0 投票
1 回答
1064 浏览

ruby-on-rails - Rails 应用程序:分叉后重新连接主宰 redis?

我正在开发一个使用Juggernaut定期向客户端推送数据的 Rails 应用程序。我使用控制器动作来开始推送;但由于推送通常是一个漫长的过程(10 分钟或更长时间),我使用 spawn 来分叉任务。例如:

问题是当我点击 start_pushing 操作时,我在日志文件中发现了这个错误:

所以我在 spawn_block 中添加了以下内容,希望它能解决问题:

它似乎没有解决它,尽管即使在我将它添加到重置 $redis 之前,该操作一直在间歇性地工作。我在想也许重置 $redis 并没有做任何事情。剑圣仍在访问旧连接。这看起来有可能吗?我如何确保 Juggernaut 使用新的 Redis 连接?

请让我知道有关我所描述内容的任何问题。感谢您的帮助,因为我现在陷入困境。