【发布时间】:2019-12-18 07:53:13
【问题描述】:
我正在使用 Electron、Python 和 Flask 在 Windows 中开发应用程序。
我用
require('child_process').spawn('python', [_script,port])
启动子进程,但我无法正确终止该子进程。
当 electron 应用关闭时,后台仍有一个名为“python”的进程在工作。
我几乎尝试了所有方法,例如 p.kill(),或者使用 taskkill。
这是python代码:
from flask import Flask
import logiccode as mine
app = Flask(__name__)
@app.route('/hello')
def hello_world():
return mine.HelloWorld()
if __name__ == '__main__':
app.run(debug = True)
//create
pyProc = require('child_process').spawn('python', [_script,port])
if (pyProc != null) {
console.log('child process success\n')
console.log(pyProc.pid);
}
//kill
if(process.platform=='win32'){
require('child_process').spawn('taskkill',['/pid','/f','/t',pyProc.pid]);
}else{
pyProc.kill();
pyProc = null
pyPort = null
}
如果代码中有错误,请告诉我如何正确杀死这个child_process。
【问题讨论】:
-
如果您打开任务管理器选项卡进程并从那里杀死它会怎样。如果您确实需要通过命令行来执行此操作,则 Windows 中的默认命令行有一些限制,您需要以管理员模式打开终端
-
确实是windows任务管理器要杀掉这个进程,我试试看是不是这个原因。
-
我尝试使用管理员帐户在 cmd 中运行它,但 python 进程在后台仍然存在.lol
标签: javascript python node.js electron