TL; DR Exécutez simplement cette commande pour le tuer
sudo kill -9 $(lsof -i :3000 -t)
Cause fondamentale:
Parce que PID est verrouillé dans un fichier et que le serveur Web pense que si ce fichier existe, cela signifie qu'il est déjà en cours d'exécution. Normalement, lorsqu'un serveur Web est fermé, ce fichier est supprimé, mais dans certains cas, la suppression correcte ne se produit pas, vous devez donc supprimer le fichier manuellement
Nouvelles solutions
lorsque vous exécutez des rails s
=> Démarrer WEBrick
=> Application Rails 4.0.4 débutant en développement sur http://0.0.0.0:3000
=> Exécuter rails server -h
pour plus d'options de démarrage
=> Ctrl-C pour arrêter le serveur
Un serveur est déjà en cours d'exécution. Vérifiez /your_project_path/tmp/pids/server.pid.
Quitter
Placez donc votre chemin indiqué ici /your_project_path/tmp/pids/server.pid
et supprimez ce fichier server.pid :
rm /your_project_path/tmp/pids/server.pid
OU Si votre serveur a été détaché, suivez les instructions ci-dessous:
Si vous avez détaché votre serveur rails en utilisant la commande "rails -d" alors,
Supprimer les rails du serveur détaché à l'aide de la commande
ps -aef | grep rails
OU par cette commande
sudo lsof -wni tcp:3000
puis
kill -9 pID
OU utilisez cette commande
Pour rechercher et tuer le processus par nom de port sur lequel ce programme est en cours d'exécution. Pour 3000, remplacez le port sur lequel votre programme s'exécute.
sudo kill -9 $(lsof -i :3000 -t)
Ancienne solution:
rails s -p 4000 -P tmp/pids/server2.pid
Vous pouvez également trouver cet article pour plus d'options
Rails Update to 3.2.11 pauses exécutant plusieurs serveurs