Javascript 第二节点子进程无法在linux上运行
因此,我需要一种方法来重新启动自己的bot,并最终找到了这个方法,但是当使用ssh在Raspberry Pi上进行测试时,它会在第一个子进程结束后退出,而在Windows上它会不断重复这个循环 使用节点Run.js运行 run.jsJavascript 第二节点子进程无法在linux上运行,javascript,node.js,child-process,Javascript,Node.js,Child Process,因此,我需要一种方法来重新启动自己的bot,并最终找到了这个方法,但是当使用ssh在Raspberry Pi上进行测试时,它会在第一个子进程结束后退出,而在Windows上它会不断重复这个循环 使用节点Run.js运行 run.js const{spawn}=require('child_进程'); var-bot; 函数startBot(){ bot=spawn('node',[“bot.js”]); on('data',data=>console.log(data.toString());
const{spawn}=require('child_进程');
var-bot;
函数startBot(){
bot=spawn('node',[“bot.js”]);
on('data',data=>console.log(data.toString());
on('data',data=>console.error(data.toString());
bot.on('close',code=>{
如果(代码===1234)startBot();
});
}
startBot();
bot.js
setTimeout(() => {
console.log("child process exiting...");
process.exit(1234);
}, 5000)
Windows上的输出:
PS C:\Users\[removed]\Desktop\despacito\despacito-spider\test> node run.js
child process exiting...
child process exiting...
child process exiting...
child process exiting...
child process exiting...
Raspi上的输出
pi@raspberrypi:~/Desktop/despacito-spider/test $ node run.js
child process exiting...
pi@raspberrypi:~/Desktop/despacito-spider/test $
程序退出时状态代码大于128是非常罕见的,部分原因是程序员避免使用它是因为$?含糊不清
从答案
将退出代码更改为2使其生效您是否尝试登录bot.on('closes')?甚至每个过程的pid?这是一种奇怪的行为,但这是我要做的第一次检查。
bot.on('closes')
不起作用。PID是不同的。似乎调用了.on,但退出代码始终为210