web-dev-qa-db-fra.com

Comment arrêter l'inspecteur de node.js/Chrome Debugger sur SIGINT?

J'ai le code suivant pour capturer un ^ C depuis le terminal et arrêter gracieusement mon application Express:

process.on('SIGINT', () => {
    console.log('SIGINT received ...');
    console.log('Shutting down the server');

    server.close(() => {
        console.log('Server has been shutdown');
        console.log('Exiting process ...');
        process.exit(0);
    });
});

Toutefois, si je démarre mon instance de noeud avec --inspect, le code ci-dessus ne parvient pas à arrêter l'inspecteur et le débogueur Chrome. Lorsque je redémarre mon application, le message d'erreur suivant s'affiche:

Starting inspector on 127.0.0.1:9229 failed: address already in use

Comment puis-je arrêter gracieusement mon application pour éviter cette erreur? 

Code complet disponible ici .

6
Naresh

Il semble que VSCode, Puppeteer, nodemon, express, etc. soient à l’origine de ce problème. peut en exécution CMD 

$ ps ax | grep node

puis

$ killall -9 node

ce n'est pas la meilleure solution, je peux également vous suggérer de rechercher le processus utilisant ce port, puis d'envoyer un signal de fermeture 

$ Sudo ss -lptn 'sport = :9229'

OR

$ Sudo netstat -nlp | grep :9229

OU 

$ Sudo lsof -n -i :9229 | grep LISTEN

PUIS: 

$ Sudo kill <pid>

OU JUSTE [les deux étapes en une]

$ Sudo kill `Sudo lsof -t -i:9229`

OR

$ Sudo kill $(Sudo lsof -t -i:9229)
14
KhogaEslam

J'ai eu la même erreur de terminal de nodemon, même si je pensais que je devais quitter tous les processus de terminal, mais simplement quitter VSCode et rouvrir pour moi (grâce à la réponse de KhogaEslam pour le conseil).

J'espère que cela aide quelqu'un d'autre aussi!

1
Joel Balmer

était à un docker de noeud. avec ss, complétez, si vous savez que le port est ouvert:

kill `ss -lptn 'sport = :THE_PORT' | tail -n1 | cut -d, -f2 | cut -d= -f2`
0
Tiago