Wie führe ich ein externes Programm in Node.js aus?
137
Ist es möglich, ein externes Programm aus node.js heraus auszuführen? Gibt es eine Entsprechung zu Pythons os.system()oder einer Bibliothek, die diese Funktionalität hinzufügt?
Was ist der beste Weg, um auf ein Ergebnis des untergeordneten Prozesses zu reagieren? Beispiel ... Wenn der Prozess einen Exit-Code 0 zurückgibt und ich eine andere Methode aufrufen möchte, stoße ich auf eine Vielzahl von Fehlern.
Continuousqa
@continuousqa - Diese Antwort ist 4 Jahre alt. Wenn Sie Probleme haben, stellen Sie bitte eine neue Frage auf SO und verweisen Sie gegebenenfalls auf diese.
Mark Kahn
1
Dieser Artikel enthält gute Tipps zur Verwendung child_process.
Adriano P
@ JoãoPimentelFerreira - Diese Frage ist 7 Jahre alt. Ich schlage vor, eine neue zu eröffnen, wenn Sie Hilfe benötigen
Mark Kahn
75
exec hat eine Speicherbeschränkung der Puffergröße von 512 KB. In diesem Fall ist es besser, Spawn zu verwenden. Mit Spawn hat man zur Laufzeit Zugriff auf stdout des ausgeführten Befehls
child_process
Modul verwenden. In der Dokumentation finden Sie einige klare Beispiele für verschiedene Anwendungsfälle.Antworten:
quelle
child_process
.exec hat eine Speicherbeschränkung der Puffergröße von 512 KB. In diesem Fall ist es besser, Spawn zu verwenden. Mit Spawn hat man zur Laufzeit Zugriff auf stdout des ausgeführten Befehls
quelle
stderr
eher in alsstdout
. In meinem Fall kommt dasclose
aber nie ...Der einfachste Weg ist:
unref ist notwendig, um Ihren Prozess zu beenden, ohne auf "yourApp" zu warten.
Hier sind die Exec- Dokumente
quelle
Aus der Node.js-Dokumentation:
Siehe http://nodejs.org/docs/v0.4.6/api/child_processes.html
quelle