Tag: 子进程

在Ruby中与子进程通信

有没有人知道如何在Ruby中启动子进程并使用已启动子进程的stdin和stdout与它进行通信? 类似于以下内容: IO.popen(“subprocess”, “r+”) do |io| io.puts(question1) answer1 = io.gets question2 = follow_up_question(question1, answer1) io.puts(question2) answer2 = io.gets # etc end 关键是我想做互动。 我不想只是为已启动的程序发送所有输入,然后检索所有输出,但我想发送内容并随后收到答案。 有什么办法吗? 我尝试了IO.popen,Open3.popen2和大约10个其他方法,但是所有这些方法都希望你先发送子进程的所有输入然后检索所有输出。 我找不到互动的方法。

带有node.js的Ruby子进程

我正在尝试将ruby实例作为我的节点程序的子进程启动。 事实上,一切都很好,但我无法与ruby的STDIN和STDOUT交互。 (当然ruby程序在我的终端上使用我的键盘输入) 所以这是一个我想要工作的简化代码…… simpleproc.js var util = require(‘util’), spawn = require(‘child_process’).spawn, ruby = spawn(‘ruby’, [__dirname + ‘/process.rb’]); ruby.stdout.on(‘data’, function (data) { console.log(‘stdout: ‘ + data); }); ruby.stderr.on(‘data’, function (data) { console.log(‘stderr: ‘ + data); }); ruby.on(‘exit’, function (code) { console.log(‘child process exited with code ‘ + code); }); ruby.stdin.write(“ping\n”); process.rb f = File.new(“process.log”, “w”) […]