如何在windows中正确地杀死node.js/electron所支持的child_process?

gv8xihay  于 2022-12-08  发布在  Electron
关注(0)|答案(2)|浏览(419)

我正在使用电子、Python和Flask在Windows中开发应用程序。
我用

require('child_process').spawn('python', [_script,port])

启动子进程,但我无法正确终止此子进程。
当电子app关闭的时候,还有一个叫做“python”的进程在后台运行。
我尝试了几乎所有的方法,例如p.kill(),或者使用taskkill。
下面是python代码:
第一次
如果代码中有错误,请告诉我如何正确地杀死这个child_process。

bfnvny8b

bfnvny8b1#

我看不出有任何理由在那里的Windows特定的分支,我假设你添加它时,pyProc.kill()不工作。
kill默认为SIGTERM。我希望它可以工作,但是如果您发现它不工作,您可以使用SIGKILL的核选项来代替。正如signal(7)中所述:
信号SIGKILL和SIGSTOP不能被捕获、阻塞或忽略。
因此:

//kill
pyProc.kill('SIGKILL');
pyProc = null
pyPort = null
0md85ypi

0md85ypi2#

希望现在还不算太晚,但我遇到了同样的问题, flask 不能被杀死的原因是因为调试模式设置为True。只需调用app.run()和节点将杀死 flask 。

if __name__ == '__main__':
   app.run()

相关问题