Articles of child process

节点 – 防止subprocess进入父目录

我从我的节点服务器产生一个进程,即在/tmp/running/username (这是用户上传的一个节点进程) 我该如何防止它读取(或知道) /tmp/running/username以外的任何内容? 我可以用任何需要的方式产生这个过程。

如何杀死node.js中的child_process – req.on close

我试图杀死subprocess,当“requst.on('close'”被调用时,但是这个callback中的child.pid总是指向最近的请求。问题是:我怎么能匹配child.pid到请求? 谢谢 var query_script = "query.py" var express = require('express'); var app = express(); var spawn = require('child_process').spawn; app.get('/:version/query', function(request, response) { child = spawn('python, ['query.py', request.originalUrl]) console.log("start pid=" + child.pid + ": " + request.originalUrl) request.on('close', function () { console.log("1: current pid=" + child.pid) //child.kill('SIGTERM'); }) child.stdout.pipe(response) }); app.listen(3000); console.log('Listening on port 3000…');

如何杀死在nightwatch中生成的进程globals.js before:function在after:函数中

我是nightwatch和node.js的新手,需要下面的帮助。 我在前函数中产生一个subprocess作为设置的守夜的一部分,并且想要在函数(拆卸)之前终止进程。 我怎么做。 我不确定使用x.kill。 module.exports = { before: function(done) { spawn = require('child_process').spawn; var x = spawn('./abc'); done(); }, after: function(done) { done(); //how to kill x spawned in before function. } }

节点pty.js产生一个进程本身产生subprocess,并且当节点被杀时subprocess不会死

使用Ubuntu 13.10并运行节点v0.10.0。 我正在使用pty.js v0.2.4来生成一个程序(需要在交互式环境中运行)。 该程序是用C语言编写的,并自行分发一个subprocess。 我写了一个C程序(我称之为“forktest”)的一个非常简化的版本,它具有产生这个问题的最低要求,并包含以下内容: #include <unistd.h> #include <sys/types.h> #include <errno.h> #include <stdio.h> #include <sys/wait.h> #include <stdlib.h> int main(void) { pid_t childPID; childPID = fork(); if(childPID >= 0) { if(childPID == 0) { signal(SIGHUP, SIG_IGN); while(1) { printf("Child Process\n"); fflush(stdout); usleep(500000); } } else { printf("Parent process\n"); fflush(stdout); getchar(); } } else { printf("Fork […]

使用两个命令(使用pipe道|)产生

我正在将文档转换为内存中的pdf(unoconv),并在terminal中打印(pdftotext): unoconv -f pdf –stdout sample.doc | pdftotext -layout -enc UTF-8 – out.txt 工作中。 现在我想用child_process.spawn使用这个命令: let filePath = "…", process = child_process.spawn("unoconv", [ "-f", "pdf", "–stdout", filePath, "|", "pdftotext", "-layout", "-enc", "UTF-8", "-", "-" ]); 在这种情况下,只有第一个命令(在|之前)正在工作。 我可以做我想要的吗? 谢谢。 最新情况: 结果: sh -c- …. bash-3.2$ sh -c- unoconv -f pdf –stdout /Users/fatimaalves/DEV/xx/_input/sample.doc | pdftotext -layout -enc […]

如何获得Node.JS中产生的child_process的输出?

首先,我是一个完整的noob,昨天开始使用Node.JS(这也是我第一次使用Linux在几年),所以请不错,明确 我目前正在做一个Node.JS程序,其中包括启动shell命令(主要是:挂载一个USB驱动器)。 我目前正在使用 var spawn = require('child_process').spawnSync; function shspawn(command) { spawn('sh', ['-c', command], { stdio: 'inherit' }); } shspawn('echo Hello world'); shspawn('mkdir newdir'); 等等,这对我来说是一个非常舒适的方式。 问题是,我想存储的输出,例如,一个“ls”命令在一个variables,像 var result = shspawn('ls -l') 我已经在网上阅读了一些例子,但很less使用产卵,当他们这样做时,它不适用于我(我想我可能做错了什么,但我又是一个在节点noob) 如果你们有比使用child_process_spawnSync更好的主意,我打开任何想法,但我希望尽可能长时间保持我的程序包免费:) 编辑:我需要它同步工作! 这就是为什么我开始使用spawnSync。 我将使用一些像dd这样的命令,这需要时间,并且在程序移动到另一个命令之前需要完全完成。

包含在可返回的生成器中的nodejs child_process.spawnSync或child_process.spawn返回输出

因为有一段时间我正在努力达到目前为止还没有解决的问题。 使用nodejs,我喜欢在命令退出后运行交互式sh命令并使用sh命令输出。 我喜欢编写一个可收缩的generator函数来封装交互式shell命令的运行并返回shell命令的输出。 方法1:shelljs shelljs 我用shelljs取得了一些成功,但是在某些时候它不会跑得更远。 问题1:是否有可能获得shelljs到我可以inheritancestdio并使shelljs函数可屈服的点? 方法2:child_process.spawnSync child_process.spawnSync 最后我发现了child_process.spawnSync并很高兴,至less我可以运行交互式sh命令而不会出现任何问题options: { stdio: 'inherit' } 但我还没有find如何取回child_process.spawnSync的输出。 问题2:如何将spawnSync封装到返回child_process输出的生成器函数中? 方法3:共同子女过程 我也试过共同子女的过程 。 它似乎运行,但不与stdio互动。 有这个问题 ,我真的不明白。 问题3:有人可以解释我/发表一个例子如何共同subprocess将与stdioinheritance工作。 方法4:用蓝鸟promisify child_process.spawn() 我打开蓝鸟的问题 ,如果child_process.spawn()是promisifiable 所以我的问题。 有人可以给我一个例子,说明如何运行一个交互式shell命令,该命令可以封装在一个返回shell命令输出的可生成生成器函数中? 我很乐意接受新的方法。 我创build了一个在github上可用的npm模块,你可以将它分叉并贡献。 thx提前。

AWS Lambda函数中spawn child_process的SIGSEGV

我试图在AWS Lambda函数中产生一个同步subprocess(用于运行ffprobe),但它几乎立即(200毫秒)通过SIGSEGV信号死亡。 我对分段错误的理解是,它是一个尝试访问不允许访问的内存的进程。 我试图增加内存到1024MB(我使用128MB,因为每个执行只使用约56MB),但这并没有改变任何东西。 我知道我不是唯一有此问题的人: https : //forums.aws.amazon.com/thread.jspa?threadID=229397 任何人都知道如何解决此问题? 更新25/4/2016 为了清楚起见,我正在运行的代码是: import { spawnSync } from 'child_process'; exports.handler = (event, context) => { process.env.PATH = `${process.env.PATH}:${process.env.LAMBDA_TASK_ROOT}`; const ffprobe = './ffprobe'; const bucket = event.Records[0].s3.bucket.name; const key = event.Records[0].s3.object.key; console.log(`bucket: ${bucket}`); console.log(`key: ${key}`); const url = 'http://my-clip-url.com'; // An s3 presigned url. if (!url) { throw […]

如何在Node.js中使用pdflatexsubprocess获取PDF作为stream?

这是我的文件: . ├── app.js ├── res.cls └── res.tex 这里是我的app.js文件的相关内容: const { spawn } = require('child_process') const latex = spawn('pdflatex', ['res.tex']) 成功运行此代码将在同一个目录中创build一个res.pdf文件。 但是,我不想创build一个文件,而是希望将PDF作为一个stream,并将其作为响应发送给浏览器。 我试图避免在服务器中创build任何PDF文件 ,我只是想立即发送生成的PDF作为响应。 是否有可能改变这个代码来做到这一点?

节点subprocess事件监听

我使用节点child_process API https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options var child = child_process.spawn(cmd, val, options); 从孩子我使用以下 child.stdout.pipe(process.stdout); child.stderr.pipe(process.stderr); 我可以在这些pipe道事件里面添加一些像console.log这样的代码吗? 例如可能与原型 child.on('error', function(err) { console.log(err); }); 更新 我需要的是听这个childProcess.stderr.pipe(process.stderr); 如果我得到和错误做process.exit(1) 当我尝试像我有错误的东西 child.stderr.pipe(function () { console.log("im here"); process.stderr; process.exit(1); } ); UPDATE2 我尝试以下 var child = child_process.spawn(cmd, value, opt); child.stdout.on('data', function (data) { console.log("IM HERE"); console.log('data' + data); }); child.stderr.on('data', function (data) { console.log("IM […]