Articles of subprocess

用节点subprocess产生python ENOENT错误

我正在尝试在节点脚本中将python脚本作为subprocess调用。 脚本的输出将在callback中使用。 代码如下所示: //myFunction.js const myFunction = callback => { let py = process.spawn('python', ['../folder/pyscript.py'], { cwd: '../folder/' }); let str = ''; py.stdout.on('data', data => { str += data.toString(); } py.stdout.on('end', () => { callback(str); } } exports.myFunction = myFunction; 当我直接运行节点myFunction.js(在脚本中使用myFunction的一个实例)时,此代码按预期方式工作,并且当我需要在与myFunction.js相同的目录中的任何其他文件中的模块时,它的工作正常。 但是,如果模块在不同的更高级目录中需要,则会失败,并显示以下错误: error: spawn python ENOENT 我猜这与path有关(可能是cwd的值),但我似乎无法解决这个问题。 我查了类似的问题,但答案没有帮助。 任何帮助将不胜感激。 🙂

NodeJS:从进程ID获取进程信息

我正在写一个小的NodeJS服务,我希望能够监视给定该进程的PID的进程。 我想能够收集有关过程的以下信息: 开始时间 CPU使用时间 内存使用情况 我将要监视的所有进程都将使用child_process exec(或spawn)函数启动,所以我可以从那里获取PID。 从技术上讲,我可以logging产生这个过程的开始时间,但是我认为这并不是那么准确? 获得以上所有信息的最佳方法是什么? 当stream程退出时,获得和结束时间也是很好的。

Python 进程将消息发送给Node 进程

Python进程派生的NodeJS – 替代process.send()的Python? 我遵循上面的解决scheme,但似乎没有工作(没有消息正在发送的孩子python代码。这是我的代码: const spawn = require('child_process').spawn; var child = spawn('python3', ['child.py'], { stdio:[null, null, null, 'pipe'] }); child.on('message', function(message) { console.log('Received message…'); console.log(message); }); 和 # !/usr/bin/python3 import os os.write(3, str.encode("HELLO")) 我可以看到有什么可能出错。 请帮忙。

如何在nodejs命令行应用程序中存储关于分离subprocess的信息

我正在构build一个nodejs命令行应用程序来启动几个分离的subprocess。 他们中的一些人是在特定港口收听的快递员。 正如我所提到的,这些过程是分离的。 我如何存储这些分离的subprocess的信息,如pid,当用户想要的时候杀掉它们。 我已经尝试将它们写入一个通用文件,我后来读取数据。 有没有更好的办法?

exec vs execFile nodeJs

我想使用nodejs在命令提示符下运行命令。 基于https://dzone.com/articles/understanding-execfile-spawn-exec-and-fork-in-node ,我用 child_process.execFile('protractor', ['./src/convertedJs/tempProtractorconfig.js'], (err, stdout, stderr) => {} 上面的代码抛出一个ENOENT错误。 但是当我跑步 child_process.exec('protractor ./src/convertedJs/tempProtractorconfig.js', (err,stdout,stderr) => {}` 一切正常。 有人可以解释发生了什么?

Node.js写入subprocess

我正在使用child_process模块和覆盆子pi上的mpg123播放器在node.js中制作mp3 webradio。 下面是问题:当我尝试写入一个stream,我总是得到一个错误: Error: write EPIPE at exports._errnoException (util.js:1026:11) at WriteWrap.afterWrite (net.js:795:14) 这是我试图testing它: //create a subprocess var test = childProcess.exec('ls /home/pi/music'); //pipe all the output to the process output test.stdout.pipe(process.stdout); test.stderr.pipe(process.stderr); test.stdin.setEncoding('utf-8'); //here I just want to write a key to the subprocess test.stdin.write('q'); test.stdin.end() 任何人都知道,做什么,创build的写入stream将不会被closures,直到一切都完成了? 当然,我仍然在谷歌search这个: Child_process抛出一个错误:写入EPIPE https://github.com/nodejs/node/issues/2985 https://nodejs.org/api/child_process.html#child_process_subprocess_stdin https://nodejs.org/api/stream.html#stream_writable_write_chunk_encoding_callback 请帮忙!

我想在Docker容器中编译代码,并能够创build容器,但无法获取callback函数中的任何数据

Dockerfile FROM chug/ubuntu14.04×64 # Update the repository sources list RUN echo "deb http://archive.ubuntu.com/ubuntu trusty main universe" > /etc/apt/sources.list RUN apt-get update # RUN apt-get upgrade # Install all the languages/compilers we are supporting. RUN apt-get install -y gcc RUN apt-get install -y g++ RUN apt-get install -y php5-cli RUN apt-get install -y ruby RUN apt-get […]

在云代工node.js上运行subprocess

有没有人试图在Cloud Foundry的node.js上运行subprocess? 我有以下代码在本地运行良好: var port = (process.env.VMC_APP_PORT || 3000), host = (process.env.VCAP_APP_HOST || 'localhost'), http = require('http'); var childProcess = require('child_process'), phantom = require('phantomjs'), ls; http.createServer(function(req, res) { ls = childProcess.exec('phantomjs -h', function (error, stdout, stderr) { if (error) { console.log(error.stack); console.log('Error code: '+error.code); console.log('Signal received: '+error.signal); } console.log('Child Process STDOUT: '+stdout); console.log('Child Process STDERR: […]

node-webkit http.Server和页面更改

我使用node-webkit编写应用程序。 我想使用HTTP进行计算机之间的networking通信,运行我的应用程序。 如果服务器是从页面启动的,可以更改当前页面,而无需重新启动服务器 我想到了subprocess,但我想用我的应用程序closures服务器。 我不想使用特殊的networking请求到服务器来closures它。 我可以更改当前页面而无需重启服务器 我可以在页面更改时保存subprocess对象吗? 你知道其他方式来做到这一点? PS对不起,我的英语。

pipe理处理以提取Node.jssubprocess中的tar缓冲区

我想通过Node.js来做到这一点: git archive remote=git@example.com:repo.git HEAD | tar -x – -C /path/to/extracted/ 所以,我写了这样的代码: git = spawn 'git', ['archive', "–remote=git@example.com:repo.git", 'HEAD'] tar = spawn 'tar', ['-x', '-', '-C /path/to/extracted'] git.stderr.on 'data', (data) -> console.log "git error: #{data}" git.stdout.on 'data', (data) -> tar.stdin.write data tar.stderr.on 'data', (data) -> console.log "tar error: #{data}" git.on 'exit', (code) -> console.log "git […]