2013-10-29 15 views
5

Sposób wykonywania polecenia systemowego w równoległym procesie równoległym bieżącego skryptu dla węzła-webkit (lub node.js).Node-webkit wykonuje zewnętrzne polecenie?

Próbuję użyć child_process. Po przerwaniu mojego podprocesu skryptu następuje wyjście. Jednak potrzebuję prostego sposobu wykonania polecenia bash bez wyjścia lub z wyjściem, ale bez zatrzymania programu, gdy mój skrypt zostanie przerwany.

Potrzebuję prawidłowego prostego sposobu.

Dzięki wszystkim.

Odpowiedz

10

Zastosowanie detached opcja w tarło/execute argumenty:

Jeśli wolnostojący opcja jest ustawiona, to proces potomny będzie liderem nowej grupy procesów . Dzięki temu dziecko może kontynuować działanie po zakończeniu rodzica.

Domyślnie rodzic oczekuje na zakończenie odłączonego potomka. Aby uniemożliwić rodzicowi oczekiwanie na dane dziecko, należy użyć metody child.unref() , a pętla zdarzeń rodzica nie będzie zawierała elementu potomnego w swojej liczbie odniesienia.

Przykład odłączania długotrwały proces i skierowanie jej wyjście do pliku:

var fs = require('fs'), 
    spawn = require('child_process').spawn, 
    out = fs.openSync('./out.log', 'a'), 
    err = fs.openSync('./out.log', 'a'); 

var child = spawn('prg', [], { 
    detached: true, 
    stdio: [ 'ignore', out, err ] 
}); 

child.unref(); 
Powiązane problemy