gpt4 book ai didi

javascript - Node.js 获取生成进程的 pid

转载 作者:搜寻专家 更新时间:2023-10-31 23:19:43 29 4
gpt4 key购买 nike

我正在试验 node.js。尝试生成进程但似乎无法在关闭时恢复正确的 PID。如果我运行下面的函数,它将生成一个进程,但关闭函数中返回的 ls.pid 将始终是上一个进程的 pid。

function app_cmd(cmd, args,path) {
ls = spawn ( cmd , args , { cwd : path } );
console.log ( cmd +' ' + ls.pid );
ls.on ( 'close' , function(code) {
console.log ( 'returning: ' + code + ' on ' + ls.pid );
} );
return ls.pid;
}

因此,如果我调用该函数两次,我将得到以下输出(注意返回值中的两次 6940):

php.exe 6076
php.exe 6940
returning: 0 on 6940
returning: 0 on 6940

谁能指点我如何在 onClose 中恢复正确的 PID?

非常感谢,

领带

最佳答案

看起来你错误地将 ls 声明为全局变量导致它被第二次覆盖,添加一个 var|let|const 应该可以修复它。

function app_cmd(cmd, args,path) {
const ls = spawn ( cmd , args , { cwd : path } );
console.log ( cmd +' ' + ls.pid );
ls.on ( 'close' , function(code) {
console.log ( 'returning: ' + code + ' on ' + ls.pid );
} );
return ls.pid;
}

关于javascript - Node.js 获取生成进程的 pid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49637201/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com