Wie forkelt man einen Child-Prozess, der auf einem anderen Debug-Port als der Parent lauscht

8

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 :

zu warten
  

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:

Dmitry Minkovsky 08.10.2013, 15:44
quelle

2 Antworten

8

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 :

%Vor%

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:

%Vor%

Zusammenfassung

Node.js behandelt konsistent execArgv und argv als separate Mengen von Werten.

    
Dmitry Minkovsky 08.10.2013 16:01
quelle
0

Vor dem Entfernen alter debug-brk -Parameter:

%Vor%

und füge ein neues hinzu:

%Vor%     
freedev 31.08.2015 16:45
quelle

Tags und Links