node.js - 如何使用 node.js 生成 child_process 并将输出保存到文件

标签 node.js bash stream child-process spawn

我正在尝试从我的 Node.js 应用程序生成一个子进程 /bin/bash,并为其使用我的应用程序 stdinstdoutstderr,同时我想将输入 (stdin) 和输出 (stdout) 的所有内容捕获到名为 inAndOut.log 的文件中。

var spawn = require('child_process').spawn;
var shell = spawn('/bin/bash', ['-l'], {stdio: 'inherit'});

最佳答案

创建一个可写流,并将标准输出通过管道传递给它:

const { spawn } = require('child_process');
const fs = require('fs');

const writeStream = fs.createWriteStream("output-file");
const shell = spawn('/bin/bash', ['-l'], {});

shell.stdout.pipe(writeStream);

关于node.js - 如何使用 node.js 生成 child_process 并将输出保存到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49196418/

相关文章:

firebase - Flutter 使用 Stream 还是 Future?

javascript - 来自 Node.js 上的 HTTP 请求的 getaddrinfo ENOENT 错误

php - PHP 和 node.js 可以在同一台服务器上运行吗

javascript - jsdom 中外部脚本的变量引用

linux - 如何让这个 init.d 脚本在服务器重启时启动?

python - Bash 或 vim 别名/命令在创建 Python 文件时使用某个模板?

javascript - 这两行代码有什么区别?

bash - 在当前位置上创建一个文件夹

scala - 懒惰的 val vs. Scala 中递归流的 val

c# - 如何解析多部分 HttpWebResponse