Ich versuche child_process.fork
zu verwenden, um einen Prozess zu erzeugen, der das Debug-Protokoll von V8 unterbricht und überwacht.
Ich kann jedoch nicht erreichen, dass der Fork-Prozess einen anderen Port überwacht als der Parent-Prozess. Unter der Annahme, dass der übergeordnete Prozess auf 6000
hört, versucht der untergeordnete Prozess außerdem, auf Port 6000
:
Fehler beim Öffnen des Sockets auf Port 6000, Warten auf 1000 ms vor dem erneuten Versuch
Hier ist mein Code:
%Vor% Wie Sie sehen können, versuche ich den Fork-Prozess auf Port 6001
aufmerksam zu machen, aber der Child-Prozess versucht, den Port 6000
zu überwachen, der vom Parent verwendet wird.
Wie kann ich den untergeordneten Prozess dazu bringen, Port 6001
oder einen anderen freien Port zu hören?
Es gibt mehrere Threads zu diesem Thema. Zum Beispiel:
Allerdings:
cluster
Variante von forking execArgv
, die anscheinend für nicht dokumentiert sind und für die process
noch nicht dokumentiert sind cluster
. Einfach genug Antwort, gefunden auf diesen Kommentar und mit etwas Hilfe von # Node.js auf Freenode:
Verschieben Sie einfach den --debug-brk
in den Schlüssel execArgv
des options
param in fork
:
execArgv
ist das Array von Parametern, die an den Knotenprozess übergeben werden. argv
ist die Menge, die an das Hauptmodul übergeben wird. Es gibt einen dedizierten Parameter für child_process.fork
für argv
, aber execArgv
s müssen innerhalb des Parameters opts
platziert werden. Das funktioniert, und im Kindprozess haben wir:
Zusammenfassung
Node.js behandelt konsistent execArgv
und argv
als separate Mengen von Werten.
Tags und Links node.js