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 .
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)
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!
é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`