支持child_process调试端口设置
发布于 2年前 作者 h63542 928 次浏览

问题描述: 在使用child_process fork子进程时,如果master以debug模式启动时,nodeJS模式使用master的启动参数启动子进程(包含debug参数),导致子进程debug端口启动失败。 解决办法: 在fork子进程时,获取master的debug参数,然后通过参数设置child_process调试参数信息,代码参考:

function startWorker(handle){
    var debug = isDebug();
    for(var i=0; i<WORKER_NUMBER; i++){
        var c  = null;
        if (debug){
            c  =  cp.fork(WORKER_PATH,{execArgv: [ '--debug='+(process.debugPort+i+1) ]});
        }else{
            c  =  cp.fork(WORKER_PATH);
        }
        c.send({"server" : true}, handle);
        childs.push(c);
    }
    function isDebug(){
        for(var i=0;i<process.execArgv.length;i++){
            if(process.execArgv[i].indexOf("--debug")==0 ){
                return true;
            }
        }
        return false;
    }
} 

参考

1 回复

@h63542 我想问下,在使用child_process fork子进程时,如果主进程异常退出,你是怎么处理子进程的?

回到顶部