Un serveur est déjà en cours d'exécution. De vérifier .../tmp/pid/serveur.pid. La sortie de rails

..$ rails s
=> Booting WEBrick
=> Rails 4.0.4 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
A server is already running. Check /home/..name/rprojects/railsapp/tmp/pids/server.pid.
Exiting

Quel est le moyen le plus simple de résoudre ce problème pour un débutant rails?

47
demandé sur ben 2014-07-08 13:00:22

10 réponses

, Vous pouvez supprimer le server.pid fichier.

rm /your_project_path/tmp/pids/server.pid

Autre:

essayez dans OSX:

sudo lsof -iTCP -sTCP:LISTEN -P | grep :3000

- sous linux:

Rails Ps-aef | grep

Ou

lsof -wni tcp:3000

Tuer le processus en utilisant

kill -9 PID (eg,2786)
103
répondu ben 2017-08-04 07:11:41

Commande simple ligne courte et nette, qui s'en occupera.

kill -9 $(lsof -i tcp:3000 -t)
102
répondu Karan Purohit 2015-02-25 09:00:58

Simple:

Allez dans le dossier racine du projet lorsque cela se produit et exécutez:

gem install shutup
shutup

Cela va trouver le processus en cours d'exécution, le tuer et nettoyer le fichier pid

REMARQUE: Si vous utilisez rvm, installez la gemme globalement

rvm @global do gem install shutup
8
répondu Lorenzo Sinisi 2016-11-17 14:54:29

server.pid contient uniquement l'ID de processus du serveur en cours d'exécution.

Si vous le faites:

more `server.pid`

, Vous obtiendrez un nombre (disons 6745) que vous pouvez utiliser pour arrêter le serveur précédent avec la commande kill:

kill -9 6745

Et vous pouvez ensuite supprimer le fichier avec la commande rm

rm server.pid
6
répondu muichkine 2014-07-08 09:06:05

Cela arrive parfois parce que vous éteignez le serveur par la force, par exemple en éteignant le système d'exploitation/machine manuellement afin que le serveur n'ait pas assez de temps pour se connecter au serveur.pid.

Un moyen simple consiste à accéder manuellement à tmp/pids/ (le répertoire affiché dans votre console.) et supprimer server.pid Fichier. Ensuite, lorsque vous redémarrez le serveur, rails server ou rails s ,il crée un nouveau serveur.pid et vous pouvez continuer le développement.

5
répondu DragonKnight 2017-12-20 02:06:58

Problème peut être résolu en utilisant:

kill -9 $(more /home/..name/rprojects/railsapp/tmp/pids/server.pid)
3
répondu webster 2015-01-22 09:21:56

La manière d'interface graphique pour windows user

Ouvrez le ResourceMonitor (gestionnaire des tâches ->Performances -> ResourceMonitor) et de tuer le rubis.processus exe

entrez la description de l'image ici

3
répondu Alexander Pfeif 2016-06-07 11:09:10

Ouvrez le fichier path/to/your/rails/project/tmp/pids/server.pid.

Copiez le numéro que vous y trouvez.

Exécuter kill -9 [PID]

[PID] est le numéro que vous avez copié à partir du fichier server.pid.

Cela va tuer le processus serveur en cours d'exécution et vous pouvez redémarrer votre serveur sans aucun problème.

3
répondu Daniel Okwufulueze 2017-05-14 01:40:03

Si vous utilisez Docker-compose, et dans Docker-compose.yml ont: volumes: - .:/myapp Cela signifie que votre espace de travail local est mappé sur le dossier /myapp du conteneur.

Tout ce qui se trouve dans / myapp ne sera pas supprimé pour les volumes définis.

Vous pouvez supprimer ./tmp/pids/server.pid dans votre machine locale. Ensuite, le conteneur /myapp n'aura pas ce fichier.

3
répondu 张健健 2017-08-02 08:53:09

Pour ce problème,

Ce que j'ai fait est:

  • supprimez le dossier Pids qui se trouve sous app/tmp/
  • Et puis, fermez le terminal que nous exécutons l'application actuelle et fermez l'onglet (dans, fenêtre du navigateur)

  • Après cela, ouvrez à nouveau le terminal en allant dans le dossier, puis le faire, rails s

  • ensuite, il ouvre l'onglet frais qui exécute notre application
0
répondu sowmya 2017-07-25 07:25:02