18 votes

Comment puis-je arrêter les émulateurs firebase locaux ?

Actuellement, j'initialise les émulateurs firebase avec :

$ firebase emulators:start

Après avoir travaillé un certain temps sur ce projet, je veux l'arrêter. Comment puis-je alors arrêter les émulateurs ?

32voto

xmkevinchen Points 1098
  1. Vérifiez quel processus occupe le port sudo lsof -i tcp:<port>
  2. Arrêtez le processus kill -9 <process id>

8voto

Matsumoto Kazuya Points 109

Si vous ne voulez pas avoir à vérifier le port à chaque fois, vous pouvez arrêter la commande avec ce qui suit

kill -9 (lsof -t -i:5002 -i:5001)

(-i:xxxx sont les ports de votre émulateur en cours d'exécution dans firebase.json).

De plus, je ne veux pas mémoriser cette longue commande. Donc j'ai fait un package.json script ci-dessous.

"scripts": {
   ...
   "stop": "lsof -t -i :5001 -i:5002 | xargs kill -9",
   ...
}

3voto

ppicom Points 318

J'ai essayé toutes les réponses ci-dessus, et aucune ne fait ce que j'attendais : terminer gracieusement la suite d'émulateur dans son ensemble sans avoir à faire ctrl+c, en ne laissant aucun port occupé. Voici comment j'ai résolu le problème.

TLDR : lsof -ti :4400 | xargs --no-run-if-empty kill

Le port étant 4400, car c'est le port par défaut pour le Hub Emulateur. Bien qu'avec cette commande, vous terminerez l'émulateur indépendamment du processus que vous avez tué.

Le drapeau "-9" utilisé dans les autres réponses n'envoie pas le signal SIGTERM au processus, mais le tue de force à la place. Cela empêche l'émulateur de se terminer de manière gracieuse.

2voto

D'après ceci : https://github.com/firebase/firebase-tools/issues/1367 Ctrl+C tue les émulateurs

1voto

Fanchen Bao Points 66

Une alternative est d'utiliser firebase emulators:exec qui, selon la documentation du CLI, fait cela :

démarrer les émulateurs Firebase locaux, exécuter un test script, puis éteindre les émulateurs.

Puisque j'ai placé ma commande d'exécution de test dans un Makefile, j'utilise la commande suivante pour tester firestore à partir d'un Python firebase_admin SDK :

firebase emulators:exec "make test" --only firestore

Le montage et le démontage du port sont gérés directement par firebase.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X