在用node写代码的时候发现这个错误,google之无解,如今解决,发于此。node
事件原由为一个全局模块经过子进程(chind_process)调用另外一个全局模块的命令,这个错误就是在命令行经过全局命令调用的时候报的app
Error: spawn Unknown system errno 203
可是父模块直接经过node app.js 这样的形式是能够成功的。google
自己代码大概是这样:spa
先经过全局命令 aa(bin/aa) 启动了父模块的入口,而后在其中经过了chind_process.fork出了父模块的代码,接着在这个代码里再经过chind_process.exec 执行了全局全局命令 bb(bin/bb) ,而后在bb的代码里又调用了子模块的入口,再fork出了子模块的代码。。蛋疼啊。命令行
以前一直觉得是父模块exec的问题,可是最后猜想是在父进程找不到子模块的全局命令致使的,验证以后发现果真如此,应该就是环境丢失的问题。code
因而就在父进程中 chind_process.fork 的时候把环境merge进去了,问题解决。server
代码大概是这样blog
var child = cp.fork(path.resolve(__dirname, '../server/app.js'), p, { env : util.merge({ 'NODE_ENV': 'production' // 'NODE_ENV': 'development' }, process.env) });