Jak uruchomić zewnętrzny program z poziomu Node.js?
137
Czy można wykonać zewnętrzny program z poziomu node.js? Czy istnieje odpowiednik Pythona os.system()lub jakiejkolwiek innej biblioteki, która dodaje tę funkcjonalność?
Jaki jest najlepszy sposób działania na wynik procesu dziecka. Przykład ... jeśli proces zwraca kod zakończenia 0, a chcę wywołać inną metodę, wydaje mi się, że napotykam mnóstwo błędów.
Continuousqa
@continuousqa - ta odpowiedź ma 4 lata. Jeśli masz problemy, zadaj nowe pytanie na SO i odnieś się do tego, jeśli to konieczne.
Mark Kahn
1
Ten artykuł zawiera dobre wskazówki dotyczące używania child_process.
Adriano P
@ JoãoPimentelFerreira - to pytanie ma 7 lat. Proponuję otworzyć nowy, jeśli potrzebujesz pomocy
Mark Kahn
75
exec ma ograniczenie pamięci o rozmiarze bufora 512k. W takim przypadku lepiej jest użyć spawnu. Przy spawn masz dostęp do standardowego wyjścia wykonywanego polecenia w czasie wykonywania
child_process
modułu. Zobacz dokumentację , która zawiera kilka jasnych przykładów różnych przypadków użycia.Odpowiedzi:
źródło
child_process
.exec ma ograniczenie pamięci o rozmiarze bufora 512k. W takim przypadku lepiej jest użyć spawnu. Przy spawn masz dostęp do standardowego wyjścia wykonywanego polecenia w czasie wykonywania
źródło
stderr
raczej w formaciestdout
. W moim przypadku to jednakclose
nigdy nie nadejdzie ...Najprostszy sposób to:
unref jest konieczne, aby zakończyć proces bez czekania na „yourApp”
Oto dokumentacja exec
źródło
Z dokumentacji Node.js:
Zobacz http://nodejs.org/docs/v0.4.6/api/child_processes.html
źródło