【发布时间】:2017-12-18 01:14:33
【问题描述】:
我想制作一个管理仪表板,我可以在其中通过单击 /start 路由来开始我的模拟 并通过单击 /stop route 停止它现在我可以开始模拟但不能停止它,所以我该怎么做。 或者运行什么 cmd 以便它可以找到 java 进程并停止它?
router.get('/start',function(req, res, next){
// res.send("start");
var exec = require('child_process').exec;
var child = exec('cd ../Simulation && java -jar Simulation.jar',function (error, stdout, stderr){
console.log('Output -> ' + stdout);
res.render('user/admin',{
title:'Account'
});
if(error !== null){
console.log("Error -> "+error);
res.send("error occured");
}
});
res.render('user/admin',{
title:'Account'
});
module.exports = child;
});
router.get('/stop',function(req, res, next){
var exec = require('child_process').exec;
var child = exec('',function (error, stdout, stderr){
console.log('Output -> ' + stdout);
if(error !== null){
console.log("Error -> "+error); }
});
module.exports = child;
});
我把这个 cmd 留空了
var child = exec('',function (error, stdout, stderr){
【问题讨论】:
-
我猜这可能是平台相关的。你在使用 Linux 吗?在这种情况下,它看起来像 this question 的副本
-
我在aws服务器上使用Linux,它是不同的,因为在那个问题中,孩子是全局存储的,但是因为我希望在路由中这样做,但是如果我关闭浏览器然后尝试转到/停止它给孩子是未定义的,当我定义它并没有杀死它。
标签: java node.js command-line child-process