Node.js 需要调用child_process.exec两次才能使其工作

Node.js 需要调用child_process.exec两次才能使其工作,node.js,Node.js,在node.js应用程序中,我有以下代码,用于启动名为timestamp的程序: var exec = require('child_process').exec, child; child = exec('./timestamp 207.99.83.228 5000 -p 5500 &', function (error, stdout, stderr) { if (error !== null) { console.log('exec error: ' +

在node.js应用程序中,我有以下代码,用于启动名为timestamp的程序:

var exec = require('child_process').exec, child;

child = exec('./timestamp 207.99.83.228 5000 -p 5500 &', function (error, stdout, stderr) {
    if (error !== null) {
        console.log('exec error: ' + error);
    } else {
        // Code to be executed after the timestamp program has started
        ...
    }
}); 
但是,这将不会启动时间戳程序,除非我通过以下方式执行对exec的调用:

exec('./timestamp 207.99.83.228 5000 -p 5500 &', null);
如果我漏掉这一行,就什么也没有,甚至没有错误消息


因此,为了成功启动程序的一个实例,我必须调用exec两次。这是node.js或ChildProcess类中的某个bug还是我在这里遗漏了什么

为什么在末尾包含一个&呢?这只有在从控制台启动程序时才有用。回调中是否有任何错误。回调是否被调用?@topek:Well,&'使命令在后台运行。当exec调用该命令时,是否不需要这样做?不,回调只在第二次调用后执行,当我按问题中所述调用exec两次时。@topek:我只是在没有“&”的情况下尝试了,但没有成功。奇怪的是,我只能在向程序添加那个毫无意义的exec调用时启动timestamp程序,并且还需要命令末尾的“&”。