【问题标题】:I get a wrong pid with child_process.spawn我用 child_process.spawn 得到了一个错误的 pid
【发布时间】:2025-12-15 10:20:08
【问题描述】:

我在 Electron 应用程序中遇到问题,并将问题简化为在节点中运行的简单 testspawn.js

var spawn = require('child_process').spawn,
exp  = spawn('explorer', ['d:'],{detached:true}); //same thing detached or not
console.log('Spawned child pid: ' + exp.pid);

当我运行 node testspawn.js 时,D: 目录中的资源管理器显示,但控制台显示:Spawned child pid: 5880

但是 Windows 的任务管理器说

当我不再需要探索者时,我想在最后杀死它,现在没有正确的 pid。我错过了什么? .彻底迷路了……

【问题讨论】:

  • 你试过exp.kill()吗?
  • 是的第一次试用我做了,在测试结束时添加了kill,但是不行。
  • explorer.exe 有一些特别之处。我找到了一种解决方法,方法是使用另一种方法,即 Explorer++,在这种情况下,我得到的 pid 是正确的,所以我可以在完成后终止进程。所以我在第一种情况下得到的 pid 应该是启动资源管理器的进程的 pid。即使这一点对我来说仍然是一个谜,我也结束了这个问题。

标签: node.js electron pid child-process spawn


【解决方案1】:

在我上一条评论之后,我没有所有的答案,但我的案例有一个解决方法......

【讨论】:

  • 既然我在评论中指出了我做了什么,为什么要投反对票。
最近更新 更多