#javascript #shell #node.js
#javascript #оболочка #node.js
Вопрос:
Я пишу функцию nodejs для выполнения команды ‘nohup’ и отправки результата успешного выполнения в виде http-ответа.
function _nohup(cmd,res){
var child = exec('nohup ./' cmd '.sh amp;',
function (error, stdout, stderr) {
res.writeHeader(200);
res.end("start process success!");
});
}
Но когда я вызываю функцию по URL-адресу, данные ответа не могут быть возвращены.
Ответ №1:
child_process.exec()
ожидает завершения дочернего процесса и затем вызывает обратный вызов. В вашем случае вы запустили фоновый процесс, который, предположительно, никогда не завершается.
Вы, вероятно, хотите child_process.spawn()
:
http://nodejs.org/docs/v0.4.9/api/child_processes.html#child_process.spawn