node.jssubprocess更改一个目录并运行进程

我尝试使用subprocess在node.js中运行外部应用程序,如下所示

var cp = require("child_process"); cp.exec("cd "+path+" && ./run.sh",function(error,stdout,stderr){ }) 

但是,当我尝试运行它卡住,没有进入callback

run.sh启动一个服务器,当我用cp.exec执行它,我期望它asynchronous运行,这样我的应用程序不会等到服务器终止。 在callback中,我想与服务器一起工作。

请帮我解决这个问题。

cp.exec获取参数选项中的工作目录http://nodejs.org/docs/latest/api/child_process.html#child_process_child_process_exec_command_options_callback

使用

 var cp = require("child_process"); cp.exec("./run.sh", {cwd: path}, function(error,stdout,stderr){ }); 

用于在“path”目录中运行脚本。

引号是由shell解释的,如果你只是看ps输出,就看不到它们。