Je suis sur un mac, en train de faire:
Rails Server
Je reçois:
2010-12-17 12:35:15] INFO WEBrick 1.3.1
[2010-12-17 12:35:15] INFO Ruby 1.8.7 (2010-08-16) [i686-darwin10.4.0]
[2010-12-17 12:35:15] WARN TCPServer Error: Address already in use - bind(2)
Exiting
Je sais que je peux en démarrer un sur un nouveau port, mais je veux arrêter ce processus.
En supposant que vous cherchiez à supprimer tout ce qui se trouve sur le port 3000 (ce que webrick utilise normalement), tapez ceci dans votre terminal pour connaître le PID du processus:
$ lsof -wni tcp:3000
Ensuite, utilisez le numéro dans la colonne PID pour tuer le processus:
$ kill -9 PID
kill -9 $(lsof -i tcp:3000 -t)
Vous devez obtenir l'ID de processus du programme utilisant le port TCP 3000. Pour obtenir l'ID de processus
lsof -i tcp:3000 -t
Et puis, en utilisant cet identifiant de processus, tuez simplement le processus en utilisant la commande ubuntu kill.
kill -9 pid
Ou tout simplement exécuter ci-dessous la commande combinée mentionnée. Il va d'abord chercher le pid puis tuer ce processus.
kill -9 $(lsof -i tcp:3000 -t)
Pour tous ceux qui tombent sur cette question qui ne se trouve pas sur un Mac: en supposant que vous sachiez que votre serveur fonctionne sur le port 3000, vous pouvez le faire d'un coup en exécutant les opérations suivantes:
fuser -k 3000/tcp
Mais comme Toby l’a mentionné, l’implémentation de fuser dans Mac OS est plutôt primitive et cette commande ne fonctionnera pas sur mac.
Il arrive parfois que le serveur Rails ne soit pas fermé correctement. Vous pouvez trouver le processus utilisé par Rails
ps aux | grep Rails
La sortie sera comme
user 12609 9.8 0.5 66456 45480 pts/0 Sl+ 21:06 0:02 /home/user/.rvm/rubies/Ruby-2.2.0-preview1/bin/Ruby bin/Rails s
Ici, id_processus 12609 est utilisé par votre serveur Rails.
Vous pouvez le tuer facilement par commande
tuer -9 12609
Toutes les réponses ci-dessus sont vraiment bonnes, mais il me fallait un moyen de taper le moins possible dans le terminal. J'ai donc créé un bijou pour cela. Vous ne pouvez installer la gemme qu'une seule fois et exécuter la commande "shutup" à chaque fois que vous souhaitez tuer le processus Rails (tout en étant dans le dossier actuel).
gem install shutup
puis allez dans le dossier actuel de votre projet Rails et lancez
shutup
# cela va tuer le processus Rails en cours d'exécution
Vous pouvez utiliser la commande 'shutup' chaque fois que vous voulez
DICLAIMER: Je suis le créateur de ce joyau
REMARQUE: si vous utilisez rvm, installez la gem globalement
rvm @global do gem install shutup
ps aux | grep Rails utilisez cette commande pour tuer le serveur
Par défaut, le serveur Rails utilise le port 3000.
Vous avez donc 2 options pour exécuter Rails serveur.
1. Vous pouvez également exécuter le serveur sur un autre port en définissant un port personnalisé à l'aide de la commande suivante.Rails s -p 3001
2. Ou vous pouvez tuer tous les processus en cours Ruby en exécutant la commande suivantekillall -9 Ruby
puis lancez Rails server
Une solution en ligne:
kill -9 $(ps aux | grep 'Rails s' | awk {'print$2'}); Rails s