Bonjour à tous,

Je cherche à killer un processus lancé via child_process.
Je cherche à executer du code PHP et du code nodejs dans une application totalement offline.

Voici mon code :

var cp   = require('child_process');
var path = require('path');

var php_app  = path.dirname(process.execPath) + path.sep + 'app';
var php_path = path.dirname(process.execPath) + path.sep + 'lib' + path.sep + 'php' + path.sep + 'php.exe -S localhost:1337 -t ' + php_app

var php_process = cp.exec(php_path, function(error, stdout, stderr) {
    console.log(error);
    console.log(stdout);
    console.log(stderr);
});

Et je voudrais qu'à la fermeture de mon application NodeWK, php.exe soit killé pour libéré la mémoire et le proc. Car à chaque fois que je lance mon application, il execute une instance de php.exe .

Merci d'avance

6 réponses


Personne ?

Bonjour BaBeuloula,
Je cherche à killer un processus lancé via child_process.
Je n'y connais rien je l'avoue, mais est-ce que cet article sur StackOverflow pourrai t'aider ? aroundkill all child_process when node process is killedaround

J'ai aussi trouvé ceci: How to kill child processes that spawn their own child processes in Node.js

Merci pour les liens je teste ça dans la soirée et je reviens dire si c'est OK ou non

Zut aucun des codes ne fonctionnent ...

Tu ne peux pas essayer de récupérer le PID de php.exe à son lancement puis le kilo avec un exec à la fin ?

Le problème c'est que le PID je ne le recupère pas tout de suite.

Par exemple les console log qui sont dans mon exec, je ne les vois que si je kill le processus via le gestionnaire de taches de Windows. Car php ne se lance pas un exe classique il reste en standbye tant qu'on lui dit pas exit. Je ne sais pas si je suis bien clair car même moi j'ai du mal à me comprendre ^^

Si vous voulez tester, je vous conseil de lancer en cmd php.exe et de regarder ce qu'il se passe