CNode

支持child_process调试端口设置

Hh63542发布于13 年前最后回复13 年前1 回复7635 浏览0 收藏

问题描述: 在使用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)

Z
zs1621#1·13 年前

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

参与回复
登录后即可参与回复。登录