Un serveur est déjà en cours d’exécution. Vérifiez… / tmp / pids / server.pid. Sortie – 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 sur rails?

Commande de ligne simple courte et nette, qui en prendra soin.

 kill -9 $(lsof -i tcp:3000 -t) 

Vous pouvez supprimer le fichier server.pid .

 rm /your_project_path/tmp/pids/server.pid 

Autre:

essayez OSX:

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

ou sous linux:

ps -aef | rails de grep

ou

 lsof -wni tcp:3000 

tuer le processus en utilisant

 kill -9 PID (eg,2786) 

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, le tuer et nettoyer le fichier pid

NOTE: si vous utilisez rvm, installez la gem globalement

 rvm @global do gem install shutup 

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

Si tu fais:

 more `server.pid` 

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

 kill -9 6745 

et puis vous pouvez supprimer le fichier avec la commande rm

 rm server.pid 

Cela arrive parfois parce que vous mettez le serveur hors tension par la force, par exemple en éteignant manuellement le système d’exploitation / la machine pour que le serveur n’ait pas assez de temps pour se connecter à server.pid.

Une méthode simple consiste à accéder manuellement à tmp/pids/ (le répertoire affiché dans votre console.) Et à supprimer le fichier server.pid . Ensuite, lorsque vous redémarrez le serveur, rails server ou les rails s , cela crée un nouveau server.pid et vous pouvez continuer le développement.

Le problème peut être résolu en utilisant:

 kill -9 $(more /home/..name/rprojects/railsapp/tmp/pids/server.pid) 

la voie gui pour l’utilisateur Windows

ouvrez le ResourceMonitor (taskmanager -> Performance -> ResourceMonitor) et arrêtez le processus ruby.exe

entrer la description de l'image ici

Ouvrez le path/to/your/rails/project/tmp/pids/server.pid 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 du serveur en cours d’exécution et vous pouvez redémarrer votre serveur sans aucun problème.

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

Tout dans / myapp ne sera pas supprimé pour les volumes définis.

Vous pouvez supprimer ./tmp/pids/server.pid dans votre ./tmp/pids/server.pid local. Le fichier / myapp du conteneur n’aura alors pas ce fichier.

Pour ce problème,

Ce que j’ai fait est:

  • Supprimez le dossier Pids situé sous app/tmp/
  • puis fermez le terminal sur lequel nous exécutons l’application en cours et fermez l’onglet (dans la fenêtre du navigateur)

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

  • Ensuite, il ouvre le nouvel onglet qui exécute notre application