express框架下的路由代码
var express = require('express');
var exec = require('child_process').exec;
var router = express.Router();
router.post('/ssh', function(request, response, next) {
exec(request.body.command, function(error, stdout, stderr){
if(error) {
console.error('error: ' + error);
response.send(error);
}
console.log('stdout: ' + stdout);
console.log('stderr: ' + typeof stderr);
response.send(stdout);
});
})
我的命令是从前端传入的请求参数,但是每次输入新的命令都会生成一个不同的进程来执行,当我输入第二个命令的时候,已经不是处于第一个命令的进程了.多个命令必须要用;隔开才能完整执行
有什么办法解决吗
child_process.exec() 不会替换现有的进程,且使用一个 shell 来执行命令