Lorsque j'essaie d'exécuter le serveur avec EventMachine::run
, l'erreur ne cesse de m'indiquer que le port est en cours d'utilisation. Cela a commencé depuis que j'ai exécuté le serveur en arrière-plan avec la commande Nohup
.
Je suis à peu près sûr d'avoir tué le processus que j'ai commencé:
ps
et je l'ai tué. Ça ne se voit plus.lsof -i :8081
(8081 est le port sur lequel je l'ai couru) et rien ne s'affiche.J'ai aussi pensé que cela pourrait être le manque de moi en tant qu'utilisateur root, donc essayé en tant que root en vain.
J'ai également redémarré le serveur.
S'il vous plaît laissez-moi savoir s'il y a autre chose que je peux essayer.
Note: ceci est sur debian.
J'ai enfin compris: c'était en fait l'adresse IP à laquelle je me liais qui était incorrecte!
Il s’agit donc d’un message d’erreur très trompeur. Si vous l’obtenez, vérifiez également l’adresse IP.
Cela se produit lorsque vous n’avez pas arrêté votre serveur correctement, par exemple lorsque vous êtes suspendu avec Ctrl + Z ou que vous exécutez le serveur deux fois.
Si arrêté par Ctrl + Z, cela fonctionne pour moi:
Obtenez le processus en cours avec:
$ ps ax | grep Rails
18192 pts/28 Sl+ 0:05 /home/admin/.rvm/rubies/Ruby-2.1.2/bin/Ruby bin/Rails c
20496 pts/23 Tl 0:08 /home/admin/.rvm/rubies/Ruby-2.1.2/bin/Ruby bin/Rails s
20919 pts/23 S+ 0:00 grep --color=auto Rails
Et puis tuez le processus dans lequel Rails server
est en cours d'exécution:
$ kill 20496
Si ce n'est pas fermé après quelques secondes, vous pouvez essayer de "forcer" la fermeture avec avec -9
(mais cela empêche tout nettoyage de Rails):
$ kill -9 20496
Maintenant, vous pouvez redémarrer le serveur:
$ Rails s
Avait le même problème.
Ran lsof -i :3000
(3000 est le port sur lequel je l'ai exécuté).
J'ai découvert que le port était utilisé par Ruby. J'ai tué le processus en utilisant kill -9 *pid*
.
Quand j'ai de nouveau exécuté lsof -i :3000
, rien ne s'est présenté.
J'ai ensuite exécuté Rails s
et tout fonctionne correctement maintenant.
Courir sur un port franc résout le problème en:
Rails s -p 3001
ou
Ruby script/Rails server webrick -e production -p 3001
ou
Ruby script/Rails server thin -e production -p 3001
Dans mon cas, il ne s'agissait que de problèmes de connexion Internet.
Cela sauvera peut-être du temps à quelqu'un: Dans mon cas, le serveur Rails ne démarrera pas sur un port renvoyant la même erreur. Événement après le redémarrage de ma machine. D'autres serveurs faisant référence à localhost n'a pas fonctionné aussi bien.
Le problème était dans mon fichier /etc/hosts
qui est devenu vide. Après avoir restauré son état par défaut, le problème a été résolu.