CNode

node执行子进程child_process shell命令的疑问

问答
Xxulayen发布于7 年前最后回复7 年前2 回复5432 浏览0 收藏
let spawn = require('child_process').spawn;
//正常执行
var tail = spawn("pm2", ["logs", "pgyer-node-middle", "--raw"]);


//执行不抱错,只是不出结果。有友好提示
var tail3 = spawn("pm2", ["logs", "pgyer-node-middle", "--raw", "|", "grep", "-i", "'" + _q + "'"]);

//提示这个。。。。
[TAILING] Tailing last 15 lines for [|] process (change the value with --lines option)

查看回复

回复 (2)

X
xulayen#1·7 年前

改成这样不抱错,但是grep -i 没有效果

var tail3 = spawn("pm2", ["logs", "pgyer-node-middle", "--raw"], { "lines": " | grep -i '" + _q + "'" });
X
xulayen#2·7 年前

var grep = spawn('grep', ['-i', `${_q}`]);
var tail3 = spawn("pm2", ["logs", "pgyer-node-middle", "--raw"]);
tail3.stdout.pipe(grep.stdin);
tail3.stdout.on("data", function (data) {
        try {
            var content = data.toString("utf-8");
            io.emit('chat message find', content);
        } catch (e) {
            console.log(e);
        }
    });

参与回复
登录后即可参与回复。登录