child_process exec怎么不关闭进程?

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);
  });
})

我的命令是从前端传入的请求参数,但是每次输入新的命令都会生成一个不同的进程来执行,当我输入第二个命令的时候,已经不是处于第一个命令的进程了.多个命令必须要用;隔开才能完整执行

有什么办法解决吗

阅读 5.4k
2 个回答

child_process.exec() 不会替换现有的进程,且使用一个 shell 来执行命令

// close service 
server.close(function(err) {
  // do something
});
 
// exit node process
process.exit()
 
// 使用库
www.npmjs.com/package/kill-port
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题