Error: spawn Unknown system errno 203

 在用node写代码的时候发现这个错误,google之无解,现在解决,发于此。

事件起因为一个全局模块通过子进程(chind_process)调用另一个全局模块的命令,这个错误就是在命令行通过全局命令调用的时候报的

Error: spawn Unknown system errno 203

但是父模块直接通过node app.js 这样的形式是可以成功的。

 

本身代码大概是这样:

先通过全局命令 aa(bin/aa) 启动了父模块的入口,然后在其中通过了chind_process.fork出了父模块的代码,接着在这个代码里再通过chind_process.exec 执行了全局全局命令 bb(bin/bb) ,然后在bb的代码里又调用了子模块的入口,再fork出了子模块的代码。。蛋疼啊。

 

之前一直以为是父模块exec的问题,但是最后猜测是在父进程找不到子模块的全局命令导致的,验证之后发现果然如此,应该就是环境丢失的问题。

于是就在父进程中 chind_process.fork  的时候把环境merge进去了,问题解决。

代码大概是这样

var child = cp.fork(path.resolve(__dirname, '../server/app.js'), p, {
    env : util.merge({
        'NODE_ENV': 'production'
        // 'NODE_ENV': 'development'
    }, process.env)
});

 

posted @ 2013-08-19 10:58  雪霁霜飞  阅读(3102)  评论(0编辑  收藏  举报