在节点js中自动完成python文件的执行后杀死子进程

时间:2018-03-19 11:06:49

标签: python node.js express

在Express实例中,我用一个请求启动一个python脚本,然后用另一个脚本停止它。我倾向于在脚本完成后,子进程被终止,并创建一个新的子进程。基本上,我希望所有事情都发生在/得到,并摆脱/stop_python得到。

如何实现这一目标?

这是我的代码:

const express = require('express')
const router = express()
var python_process;
var process=0;

router.get('/', function(req, res) {
    var PythonShell = require('python-shell');
    var pyshell = new PythonShell('sum.py');

    pyshell.end(function (err) {
        if (err) {
            console.log(err);
        }
    });

    python_process = pyshell.childProcess;

    res.send('Started.');
    pyshell.stdout.on('data', function(data) {
        console.log('Process:' +process)
        console.log(data.toString());
    //res.writeHead(200);
   });
});

router.get('/stop_python', function(req, res) {
    python_process.kill('SIGINT');
    res.send('Stopped');
    process += 1;
});

router.listen(6262, () => console.log('app listening on port 6262'));

sum.py

a = 2
b = 3
def summ():
    return a+b

 #summ()

0 个答案:

没有答案