2016-06-15 1 views
0

A l'intérieur d'un nœud de serveur/Express, j'ai commencé un autre serveur Node/Express comme processus enfant:Comment tuer le processus enfant Node Express?

let appifi = child.spawn('node', [babel_path, www_path], { 
    cwd: appifi_path, 
    env: appifi_env, 
}) 

Cela a bien fonctionné et appifi a un pid, disons 2376.

Lorsque vous essayez d'arrêter le processus d'enfant , appifi.kill() va tuer le processus avec pid 2376, mais il y a un processus de serveur resynchronisé en cours d'exécution, généralement avec un pid égal au pid de son parent plus 5 (je ne sais pas s'il s'agit d'une règle stricte).

Ma question est, comment les tuer à la fois dans le serveur parent? est-il sûr de traiter.kill (appifi.pid + 5)? ou il y a de meilleurs moyens?

+0

Je ne vois pas le troisième processus (processus serveur repop), je ne comprends pas pourquoi il devrait y avoir un. Pouvez-vous placer votre code complet qui provoque ce comportement? –

Répondre

0

Vous pouvez tuer les deux (en fait, ALL) serveurs de noeud par killall -9 node