0

我有以下代码 Node.js 来运行 shell 命令。

var exec = require('child_process').exec;
var express = require('express');
var app = express();

app.all('/commands', function(req, res) {
    var command = exec('rhythmbox-client --print-playing', function(err, stdout, stderr) {

        res.header("Access-Control-Allow-Origin", "*");
        res.header("Access-Control-Allow-Headers", "X-Requested-With");
        res.send({res: stdout});

    });
});
app.listen(3000);

问题是某些命令(例如“amixer sset Master 40”)正确返回命令的输出,而其他命令(例如“rhythmbox-client - print-playing”)返回空输出。

奇怪的是,当两者都在终端上运行时,它们都会产生输出,但是当由 Node.js 执行时,只有少数命令会产生输出。

谁能帮我?谢谢你。

4

0 回答 0