2015-07-15 24 views
12

Quando si genera un nuovo figlio in nodejs su windows (child_process.spawn) apre sempre una finestra della console vuota che rimane aperta fino alla fine del processo secondario.Nascondi la console della console figlio

C'è un modo per evitare questo?

, ad esempio, vogliamo eseguire la nostra applicazione come servizio in background utilizzando forever. Tuttavia, non è molto superficiale poiché continua ad aprire e chiudere finestre vuote della console ...

MODIFICA: l'esecuzione dell'applicazione secondaria in modalità "silenziosa" non è un'opzione poiché le parti dei processi che vengono generati sono wmic.

+1

possibile duplicato di [Come impedire la visualizzazione della console quando si utilizza l'interfaccia fittizia di VLC] (http://stackoverflow.com/questions/6001034/how-to-prevent-console-from-being-displayed-when-using -vlcs-dummy-interface) – CodeCaster

+0

La documentazione duplicata o Node menziona un modo per farlo attraverso il codice. Forse è possibile configurare l'applicazione client tramite i parametri della riga di comando che non dovrebbe mostrare una finestra. Se esegui Node come servizio di Windows, non vedrai comunque le finestre. – CodeCaster

+0

Io uso 'spawn' e non ottengo mai una finestra separata su Windows. Thjo ho setup di listener per 'stdout' e' stderr'. forse questo è il motivo (non sono sicuro) ... ma immagino dipenda da cosa stai invocando nel tuo spawn. – Gyandeep

risposta

1

In questo modo verrà generata per sempre una console per l'app. E non aprire per ogni spawn una finestra di console.

forever -c "cmd /c node" start app.js 
0

A seguito di risposta di RanP,

forever start --uid "foo" -c "cmd /c node" app.js 

Avrete bisogno di 'start' davanti ai vostri args -c e --uid è opzionale. Si noti che c'è uno spazio in meno nel comando -c, che consente a questo di funzionare.