Tag: 处理

spawn()函数的“closures”callback在grunt插件中不起作用

我正在创build一个grunt插件,它广泛使用了grunt.util.spawn函数( http://gruntjs.com/api/grunt.util#grunt.util.spawn )。 我的插件的基本框架如下: 'use strict'; module.exports = function (grunt) { var spawn = require("child_process").spawn; var createCommit = function (text) { var commit = grunt.util.spawn({ cmd: "git", args: ["commit","-a","-m", text] }, function() { console.log("FINISH! FINISH! FINISH!"); }); }; grunt.registerMultiTask("myplugin", "Plugin to commit awesome things", function () { createCommit("0.2.0"); }); }; 不过,当我试图执行这个grunk任务时, console.log("FINISH! FINISH! FINISH!"); 永远不会执行英寸callback…有人可以帮助我呢?

未捕获的ReferenceError:进程未定义

我正在使用node.js来创build一个Web应用程序。 当我运行应用程序时(通过在浏览器上打开index.html或在terminal上使用命令“npm start”),我得到两个错误: 未捕获的ReferenceError:进程未定义 未捕获的ReferenceError:require是未定义的 我通过在我的index.html head标签中特别包含了这个脚本的链接来解决“require is not defined”错误,在这个脚本中定义了require函数。 但是,我找不到类似的过程function。 我的问题是双重的: 为什么内置的node.js模块需要重新定义? 为什么他们不被识别,就是“内置模块”? 术语“内置模块”是不是意味着模块不需要外部/二手重新定义? 有没有办法解决这个问题? 我的脚本非常简单,我只是试图使用node.js的一个基本function,所以我不知道我可能做了什么错误。 如果有人出现这个问题,并find解决办法或发生这种情况的原因,你会有很大的帮助。

节点产卵进程检查timout

我已经产生了有时需要很长时间运行的过程,我的问题是有一种方法来限制这个过程时间? 例如3分钟后杀死这个过程?

如何防止子节点进程被父节点进程杀死?

我正在使用child_process.spawn / child_process.fork从node.js应用程序启动一些subprocess。 当用Ctrl-C停止父进程时,subprocess也停止。 有没有一个优雅的方式来保持subprocess运行?

使用edge.js有可能使.Net C#模块调用进程的node.js部分,即做反向调用吗?

你可以在这里看到从Node.js – > C#的interop模型。 我想知道的是,C#代码可以在返回之前调用C#中的进程的Node.js部分中的方法吗? 想象一下,如果你有一个电话,像 var webApi = edge.func('/MyDotNetApi.csx'); webApi(function (error, result) { log.('api started'); }); MyDotNetApi.csx返回,但留下一个套接字侦听器线程运行来处理HTTP请求。 现在,如果进程的Node.js部分持有(不断变化).Net代码需要访问的信息以包含在其HTTP响应中,它是否可以以某种方式请求Node.js?

是否使用recursionprocess.nexttick让其他进程或线程工作?

技术上,当我们执行下面的代码(recursionprocess.nexttick),CPU使用率将达到100%或接近。 问题是想象我正在一台CPU上运行,另一个节点HTTP服务器正在工作,它是如何影响它的? 线程做recursionprocess.nexttick让HTTP服务器工作吗? 如果我们有两个线程的recursionprocess.nexttick,他们都得到50%的份额? 因为我不知道有一个核心的任何机器不能尝试它。 而且由于我在这种情况下对线程之间的CPU时间共享的理解是有限的,所以我不应该用具有4个CPU核心的机器来尝试它。 function interval(){ process.nextTick(function(){ someSmallSyncCode(); interval(); }) } 谢谢

node.js:如何在前景中产生分离的子节点并退出

根据child_process.spawn 的文档 ,我期望能够在前台运行一个subprocess,并允许节点进程自己退出,如下所示: handoff-exec.js : 'use strict'; var spawn = require('child_process').spawn; // this console.log before the spawn seems to cause // the child to exit immediately, but putting it // afterwards seems to not affect it. //console.log('hello'); var child = spawn( 'ping' , [ '-c', '3', 'google.com' ] , { detached: true, stdio: 'inherit' } […]

通过nodejs重新附加到产生的进程

我正在Node.js中创build一个小型私有游戏服务器pipe理器; 目前它通过child_process产生游戏来运行游戏: var server = spawn(cmd, args, { cwd: 'something' }); 只要经理继续跑,我可以pipe命令,并按我的意愿处理孩子。 但是,考虑我的经理崩溃或closures的可能性。 那么我将如何重新连接到之前产生的subprocess(在经理closures时仍然在运行)呢? 我可以存储pidfiles来尝试重新连接基于pid; 但我不知道如何获得一个child_process对象访问子的stdio对象。 我真的希望这可以恢复; 任何帮助表示赞赏,谢谢! 请注意 :游戏服务器是专有的,一些例子是Minecraft,Source DS等。假设我没有访问服务器源。 编辑 从节点的child_process读取一些源代码后,看起来像是在stdinStream , stdoutStream或stderrStream选项中指定了一个属性,它应该只是打开一个套接字。 (见428-496行)。 所以问题是,我怎么停止产卵实际上做一个产卵,而只是设置基于指定的PID和我传递的stream的值。 (我会通过做fs.createWriteStream('/proc/PID/fd/0');得到我的stdinStream fs.createWriteStream('/proc/PID/fd/0');这应该工作,因为该fd被创build为一个pipe道。

用node.js中的参数产生进程

我需要从node.js产生一个subprocess,同时使用ulimit来避免使用内存。 在文档之后,获得基本的产卵工作并不困难: child = spawn("coffee", ["app.coffee"]) 。 但是,我正在做的事情只是使得产卵静静地死去。 child = spawn("ulimit", ["-m 65536;", "coffee app.coffee"]) 如果我会运行ulimit -m 65536; coffee app.coffee ulimit -m 65536; coffee app.coffee – 它的工作原理。 我在这里做错了什么?

通过Grunt运行Node应用程序

我试图运行我的节点应用程序作为一个Grunt任务。 但是,我需要将其作为一个subprocess产生,以允许我并行运行watch任务。 这工作: grunt.registerTask('start', function () { grunt.util.spawn( { cmd: 'node' , args: ['app.js'] }) grunt.task.run('watch:app') }) 但是,当监视任务检测到更改时,这将再次触发启动任务。 在我生成Node应用程序的另一个subprocess之前,我需要杀死前一个进程。 但是,我不知道如何杀死这个过程。 像这样的东西不起作用: var child grunt.registerTask('start', function () { if (child) child.kill() child = grunt.util.spawn( { cmd: 'node' , args: ['app.js'] }) grunt.task.run('watch:app') }) 看起来: 尽pipe我将生成的进程存储在函数上下文之外的variables中,但它不会保留,所以下次启动任务运行时,child是undefined 。 child没有killfunction…