我有以下代码 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 执行时,只有少数命令会产生输出。
谁能帮我?谢谢你。