gpt4 book ai didi

javascript - 返回nodejs子进程pid的最简单方法

转载 作者:行者123 更新时间:2023-11-29 23:12:52 27 4
gpt4 key购买 nike

我的脚本旨在从此 nodejs 脚本启动 python 程序。 (Nodejs 不是我的语言)。我想在启动后确定 python 脚本的 pid,然后随时将其终止。这是我的代码。

var pid = {};

v1.on('write', function(param) {
if (param[0] == '1') {
child = exec('python /home/pi/startup/motion.py',
function (error, stdout, stderr) {
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
if (error !== null) {
console.log('exec error: ' + error);
}
});
writeVal = 'motion sensor ON';
}
else if (param[0] == '0') {
child = exec('kill'+ pid,
function (error, stdout, stderr) {
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
if (error !== null) {
console.log('exec error: ' + error);
}
});
writeVal = 'Motion OFF';
}
});

最佳答案

exec返回 ChildProcess对象,因此您可以使用 child.pid 获取 pid。

您也可以不使用 shell 命令直接使用 child.kill()

var child;

v1.on('write', function(param) {
if (param[0] == '1') {
child = exec('python /home/pi/startup/motion.py',
function (error, stdout, stderr) {
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
if (error !== null) {
console.log('exec error: ' + error);
}
});
writeVal = 'motion sensor ON';
}
else if (param[0] == '0') {
exec('kill '+ child.pid,
function (error, stdout, stderr) {
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
if (error !== null) {
console.log('exec error: ' + error);
}
});

//
// child.kill()
//

writeVal = 'Motion OFF';
}
});

关于javascript - 返回nodejs子进程pid的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53494363/

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