我在centos6.X中运行我的节点服务器,并分叉子进程.
var cp = require('child_process');
child = cp.fork(__dirname+'/worker');
child.on('exit', function (code, signal) {
console.log('Child exited with code = ' +code+' signal = '+signal);
});
Run Code Online (Sandbox Code Playgroud)
但几秒钟后我收到了这个错误
子代码退出,代码= null signal = SIGKILL
我现在对如何摆脱这一点毫无头绪,没有更多的痕迹,关于发生了什么.
更多澄清
我把console.logs放在worker中,然后打印出来.工作人员正在等待来自主服务器的消息.但是等了几秒钟就退出了.我还使用node命令独立运行worker js,并且它不会退出.
相同的代码在我的本地OSX笔记本电脑上正常工作.但在云centos6.XI面临这个问题.
rob*_*lep 16
子进程可以通过两种方式退出:自愿,在这种情况下,退出代码将通过信号返回或非自愿地返回.
从exit处理程序的参数,第一个反映退出代码,第二个反映信号.其中一个将包含一个值,另一个将包含一个值null.如文档中所述:
如果进程退出,
code则是进程的最终退出代码,否则null.如果由于接收到信号而终止该过程,signal则是信号的字符串名称,否则null.其中一个将始终为非null.
如果您的子进程收到a SIGKILL,并且您不是(明确地)发送该信号的那个进程,那么很有可能子进程被Linux OOM杀手杀死,这会杀死进程,以防系统被内存束缚( "OOM"的意思是"内存不足").
因此,请确保您的系统具有足够的RAM,足够的交换和/或您的进程不会占用太多内存(如果可能).
| 归档时间: |
|
| 查看次数: |
4583 次 |
| 最近记录: |