我的脚本旨在从此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';
}
});
答案 0 :(得分:1)
答案 1 :(得分:0)
我看到您已经创建了一个用于运行python的脚本。我假设您有PID。如果没有,运行Python脚本后,child
变量应为您提供child.pid
将其保存在pid
变量中。您可以使用以下命令来终止任务。
-f
是为了确保“强行杀死”
注意:/ PID后面的空格是强制性的,以免出现参数错误
childProcess.exec('taskkill -f /PID ' + pid, function(err, stdout, stderr){
var status = stdout.split(':')[0]
if(status === 'SUCCESS'){
//successfully killed
} else if(status === 'ERROR'){
//Ouch! PID does not exist
}
//Note: You get stdout for both the scenarios where PID is found and PID is not found
})