我正在使用电子、Python和Flask在Windows中开发应用程序。我用
require('child_process').spawn('python', [_script,port])
启动子进程,但我无法正确终止此子进程。当电子app关闭的时候,还有一个叫做“python”的进程在后台运行。我尝试了几乎所有的方法,例如p.kill(),或者使用taskkill。下面是python代码:第一次如果代码中有错误,请告诉我如何正确地杀死这个child_process。
bfnvny8b1#
我看不出有任何理由在那里的Windows特定的分支,我假设你添加它时,pyProc.kill()不工作。kill默认为SIGTERM。我希望它可以工作,但是如果您发现它不工作,您可以使用SIGKILL的核选项来代替。正如signal(7)中所述:信号SIGKILL和SIGSTOP不能被捕获、阻塞或忽略。因此:
pyProc.kill()
kill
signal(7)
//kill pyProc.kill('SIGKILL'); pyProc = null pyPort = null
0md85ypi2#
希望现在还不算太晚,但我遇到了同样的问题, flask 不能被杀死的原因是因为调试模式设置为True。只需调用app.run()和节点将杀死 flask 。
if __name__ == '__main__': app.run()
2条答案
按热度按时间bfnvny8b1#
我看不出有任何理由在那里的Windows特定的分支,我假设你添加它时,
pyProc.kill()
不工作。kill
默认为SIGTERM。我希望它可以工作,但是如果您发现它不工作,您可以使用SIGKILL的核选项来代替。正如signal(7)
中所述:信号SIGKILL和SIGSTOP不能被捕获、阻塞或忽略。
因此:
0md85ypi2#
希望现在还不算太晚,但我遇到了同样的问题, flask 不能被杀死的原因是因为调试模式设置为True。只需调用app.run()和节点将杀死 flask 。