Je suis sur un Mac et je fais:
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 tuer ce processus.
ruby-on-rails
Blankman
la source
la source
PID
par le numéro réel qui est affiché dans votre console lors de la saisie de la première ligne de code (par exemple,12345
).lsof -wni tcp:3000
sera toujours montrer tous les processus d' écoute sur ce protocole: combinaison de port. (où 3000 doit être remplacé par le port de votre serveur local. Par exemple, dans Rails, c'est 3000 par défaut).kill -9 $(lsof -i tcp:3000 -t)
la source
-t
signifiespecifies that lsof should produce terse output with process identifiers only and no header - e.g., so that the output may be piped to kill(1).
que je suppose que vous savez ce quikill
va fairekill -9
par cœur / habituellement.Vous devez obtenir l'ID de processus du programme en utilisant le port TCP 3000. Pour obtenir l'ID de processus
Et puis en utilisant cet identifiant de processus, il suffit de tuer le processus en utilisant la commande ubuntu kill.
Ou exécutez simplement la commande de combinaison mentionnée ci-dessous. Il va d'abord récupérer pid puis tuer ce processus.
la source
kill -9
par cœur / habituellement.Pour toute personne tombant sur cette question qui n'est pas sur un Mac: en supposant que vous savez que votre serveur fonctionne sur le port 3000, vous pouvez le faire en une seule fois en exécutant ce qui suit:
Mais comme Toby l'a mentionné, l'implémentation de l'unité de fusion dans Mac OS est plutôt primitive et cette commande ne fonctionnera pas sur mac.
la source
-v
indicateur affiche également une petite quantité d'informations sur le processus tué. Alorsfuser -kv 3000/tcp
. Hélas, le fuser de MacOS n'a pas cette capacité.kill $(lsof -ti tcp:3000)
est un équivalent assez proche, cependant.Parfois, il est possible que le serveur de rails ne se ferme pas correctement. Vous pouvez trouver le processus utilisé par les rails
La sortie sera comme
Ici, process_id 12609 est utilisé par votre serveur de rails.
Vous pouvez le tuer facilement par commande
la source
kill -9
par cœur / habituellement.ps aux | grep puma
Toutes les réponses ci-dessus sont vraiment bonnes mais j'avais besoin d'un moyen de taper le moins possible dans le terminal alors j'ai créé un petit bijou pour ça. Vous ne pouvez installer la gemme qu'une seule fois et exécuter la commande «shutup» à chaque fois que vous voulez tuer le processus Rails (tout en étant dans le dossier actuel).
gem install shutup
puis allez dans le dossier courant de votre projet de rails et lancez
shutup
# cela va tuer le processus Rails en cours d'exécutionVous pouvez utiliser la commande «shutup» à chaque fois que vous le souhaitez
DICLAIMER: Je suis le créateur de ce joyau
REMARQUE: si vous utilisez rvm, installez la gemme à l'échelle mondiale
la source
lsof
approche est plus fiable.ps aux | grep rails utilisent cette commande, vous pouvez tuer le serveur
la source
Par défaut, le serveur rails utilise le port 3000.
Ainsi, vous avez 2 options pour exécuter le serveur rails.
1. Soit vous pouvez 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 tout le processus ruby en cours en exécutant la commande suivante,
killall -9 ruby
puis exécutez
rails server
la source
Solution en une ligne:
la source
Tapez:
Recherchez ensuite -w, -n et -i
-i: trucs sur Internet -n: accélère -w: bascule les avertissements
Il y a BEAUCOUP plus de détails sur les pages de manuel
la source
Si vous êtes sur une machine Windows, suivez ces étapes.
Vous y trouverez un fichier appelé server.pid
supprime-le.
C'est tout.
EDIT: Veuillez vous référer à ceci
la source