Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 第二节点子进程无法在linux上运行_Javascript_Node.js_Child Process - Fatal编程技术网

Javascript 第二节点子进程无法在linux上运行

Javascript 第二节点子进程无法在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());

因此,我需要一种方法来重新启动自己的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());
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