nodejs child_processes.exec无法返回'nohup'命令

时间:2011-04-12 03:52:28

标签: javascript shell node.js

我编写了一个nodejs函数来执行'nohup'命令,并将成功结果作为http响应发送。

function _nohup(cmd,res){
    var child = exec('nohup ./' + cmd + '.sh &',
    function (error, stdout, stderr) {
        res.writeHeader(200);
        res.end("start process success!");
    });
}

但是当我通过url地址调用该函数时,响应数据无法返回。

1 个答案:

答案 0 :(得分:6)

child_process.exec()等待子进程退出然后调用回调。在你的情况下,你已经产生了一个后台进程,大概不会退出。

您可能需要child_process.spawn()

http://nodejs.org/docs/v0.4.9/api/child_processes.html#child_process.spawn