2013-10-29 19 views
5

Come eseguire il comando di sistema in node-webkit (o node.js) processo parallelo parallelo dello script corrente.Node-webkit esegue un comando esterno?

Sto tentando di utilizzare child_process. Dopo l'interruzione del mio sottoprocesso dello script è uscita. Tuttavia ho bisogno di un modo semplice eseguire il comando bash senza output o con output ma senza arresto del programma quando il mio script verrà interrotto.

Ho bisogno di un modo semplice corretto.

Grazie a tutti.

risposta

10

Usa detached opzione nelle uova/eseguire argomenti:

Se l'opzione indipendente si trova, il processo figlio sarà effettuata la leader di un nuovo gruppo di processo. Ciò consente al bambino di continuare a essere eseguito dopo la chiusura del genitore.

Per impostazione predefinita, il genitore aspetterà l'uscita del figlio scollegato. Per impedire al genitore di attendere un determinato figlio, utilizzare il metodo child.unref() e il ciclo di eventi del genitore non includerà il figlio nel suo conteggio di riferimenti.

Esempio di distacco di un processo di lunga durata e riorientare la sua uscita un file:

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(); 
Problemi correlati