Tag: subprocess

Node.js child_process.spawn无法启动python进程

我已经写了下面的代码来产生一个python进程。 我能够启动其他进程,但不是Python。 我试过重新安装Python和节点,但仍然没有运气。 我能够从命令行运行python。 请帮忙。 const spawn = require("child_process").spawn; var process = spawn('python',[ 'D:/python_script.py']); var responseData = ""; process.stdout.setEncoding('utf-8'); process.stdout.on('data', function (data){ responseData += data.toString(); }); process.stdout.on('end',function(data){ console.log(JSON.stringify(responseData)); }); 使用节点64位v8.2.1 Python脚本,我正在使用: if __name__ == '__main__': import sys print("Hello") f = open('D:/myfile.txt', 'w') f.write('hi there\n') # python will convert \n to os.linesep f.close() sys.stdout.flush() 即使只是产卵('python'); 没有启动python窗口 […]

同时完成儿童程序和承诺决议

tl; dr:我写的一个函数创build了几个subprocess,当他们在消息中提交他们的数据时,这个subprocess解决了这个承诺。 虽然函数将所有这些承诺包装在一个Promise中。所有的函数都会突然返回,并且promise也不会解决也不会拒绝,即使所有的过程都完成了没有错误。 任何想法为什么发生这种情况? 为了加速数据收集过程,我有一个父进程获取一些input数据(在SQL数据库中查询的date是准确的),并将它发送给大小相等的一些subprocess,等待subprocess完成处理他们的数据通过包装他们的结果在一个大的承诺。 虽然这适用于较小的数据集,但对于较大的数据集,父承诺只会返回到命令行 – 既不解决也不拒绝,甚至不能继续执行function。 看了几个日志之后,似乎所有的subprocess都正确地处理并发送了他们的数据,但是父进程并没有收到less数几个进程的结果。 错过的消息发生在数据处理结束的附近(当几个subprocess在大约同一时间完成并发送消息时) 缩写代码: // main function function createArray(i,j) // returns an array of i empty arrays, each of length j function chunkify(a, n, balanced) // divides array a into n chunks (balancing them in size if true) returning an array of chunks function kidcollector(snaptimes,course) { var done […]

用节点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: […]