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);
この行を省略すると、何も表示されず、エラー メッセージも表示されません。
したがって、プログラムの 1 つのインスタンスを正常に開始するには、 exec を2 回呼び出す必要があります。それはnode.jsまたはChildProcessクラスのバグですか、それともここに何か欠けていますか?