..$ 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
¿Cuál es la forma más fácil de resolver esto para un principiante en rieles?
ruby-on-rails
ben
fuente
fuente

tempcarpeta puede solucionar su problema.Respuestas:
Puede eliminar el
server.pidarchivo.rm /your_project_path/tmp/pids/server.pidMás:
prueba en OSX:
sudo lsof -iTCP -sTCP:LISTEN -P | grep :3000o en linux:
ps -aef | rieles grep
o
lsof -wni tcp:3000matar el proceso usando
kill -9 PID (eg,2786)fuente
Comando de línea única corto y nítido, que se encargará de ello
kill -9 $(lsof -i tcp:3000 -t)fuente
rubyejecutandotopobteniendo el PID y luego ejecutándolokill -9 <PID>server.pidsolo contiene el ID de proceso del servidor en ejecución.Si lo haces:
more /your_project_path/tmp/pids/server.pidobtendrá un número (digamos 6745) que puede usar para detener el servidor anterior con el comando kill:
kill -9 6745y luego puedes eliminar el archivo con el
rmcomandorm /your_project_path/tmp/pids/server.pidfuente
server.pidinvertidas haría que el shell intentara ejecutar server.pid, ¿no es así?Si está utilizando docker-compose, y en docker-compose.yml tiene:
volumes: - .:/myappEso significa que su espacio de trabajo local está asignado a la carpeta / myapp del contenedor.Todo lo que esté en / myapp no se eliminará para los volúmenes definidos.
Puede eliminar
./tmp/pids/server.piden su máquina local. Entonces / myapp del contenedor no tendrá este archivo.fuente
command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'". Refs: github.com/docker/compose/issues/1393#issuecomment-99988242Simple:
vaya a la carpeta raíz del proyecto cuando esto suceda y ejecute:
gem install shutup shutupEsto encontrará el proceso que se está ejecutando actualmente, lo eliminará y limpiará el archivo pid
NOTA: si está utilizando rvm, instale la gema globalmente
rvm @global do gem install shutupfuente
El problema se puede resolver usando:
kill -9 $(more /home/..name/rprojects/railsapp/tmp/pids/server.pid)fuente
A veces sucede porque apaga el servidor a la fuerza, por ejemplo, apaga el sistema operativo / máquina manualmente para que el servidor no tenga tiempo suficiente para iniciar sesión en server.pid.
Una forma sencilla es ir manualmente
tmp/pids/(al directorio que se muestra en su consola) y eliminar elserver.pidarchivo. Luego, cuando vuelve a iniciar el servidor,rails serverorails screa un nuevo server.pid y puede continuar con el desarrollo.fuente
la forma de interfaz gráfica de usuario para el usuario de Windows
abra ResourceMonitor (taskmanager -> Performance -> ResourceMonitor) y elimine el proceso ruby.exe
fuente
Abra el
path/to/your/rails/project/tmp/pids/server.pidarchivo.Copia el número que encuentres allí.
correr
kill -9 [PID]¿Dónde
[PID]está el número que copió delserver.pidarchivo?Esto matará el proceso del servidor en ejecución y podrá iniciar su servidor nuevamente sin ningún problema.
fuente
Mata server.pid usando el comando:
kill -9 `cat /root/myapp/tmp/pids/server.pid`Nota: Utilice su ruta server.pid que se muestra en la consola / terminal.
Gracias.
fuente
Para obtener información adicional, en el contexto de ejecutar la aplicación en la ventana acoplable.
En el archivo docker-compose.yml, debajo del contenedor de la aplicación, puede usar uno de los siguientes:
command: ["rm /your-app-path/tmp/pids/server.pid && bundle exec bin/rails s -p 3000 -b '0.0.0.0'"]o
command: ["rm /your-app-path/tmp/pids/server.pid; foreman start"]Tenga en cuenta el uso de
;o&&, que&&enviará una señal de salida sirmno encuentra el archivo, lo que obligará a su contenedor a detenerse prematuramente. El uso;continuará ejecutándose.¿Por qué es esto causado en primer lugar? La razón es que si el servidor (puma / thin / lo que sea) no sale limpiamente, dejará un pid en la máquina host que provocará un error de salida.
Para la portabilidad en lugar de eliminar manualmente el archivo en el sistema host, es mejor verificar si el archivo existe dentro de un archivo con script o de composición.
fuente
Primero encuentre el número de PID : dónde se atascó el servidor Rails
Ejecute esto para encontrar el PID atascado
cat ./tmp/pids/server.pidRegresará algo como
65829Entonces MATA ese PID =>
kill 65829fuente
Ejecute este comando -
entonces obtendrás la siguiente tabla -
Ejecute este comando y reemplace el PID de la tabla anterior
ejemplo:
fuente
Por este problema,
Lo que hice fue:
app/tmp/y luego, cierre la terminal en la que estamos ejecutando la aplicación actual y cierre la pestaña (en la ventana del navegador)
después de eso, abra nuevamente la terminal yendo dentro de la carpeta, y luego haga,
rails sfuente
primero copie el cumber dentro del archivo y luego elimínelo: rm /your_project_path/tmp/pids/server.pid y luego créelo nuevamente. touch /YOUR_PROJECT_PATH/tmp/pids/server.pid Funcionó para mí.
fuente
Ejecute el siguiente comando en la terminal (solo para linux)
ps aux | grep railsy entonces
kill -9 [pid]De otra manera
lsof -wni tcp:3000y entonces
kill -9 [PID]fuente
SOLUCIONAR
Dirección ya en uso - bind (2) ”error 500 en Ruby on Rails
Recientemente intenté ejecutar una aplicación Rails en un servidor de producción. No solo no funcionó, sino que también rompió mi servidor de desarrollo localhost: 3000. Localhost solo cargaría una página en blanco o un error 500.
Para resolver esto, utilicé dos comandos rápidos. Si estos no devuelven un resultado, es posible que deba buscar una solución en otro lugar, pero esta es una buena solución rápida.
lsof -wni tcp: 3000
Este comando muestra todos mis procesos actualmente en ejecución y sus PID (ID de proceso) en el puerto 3000. Debido a que existen procesos en ejecución que no se cerraron correctamente, mi nuevo servidor: 3000 no se puede iniciar, de ahí el error 500.
matar 52179
matar 52180
rieles s
Usé el comando kill de Linux para detener manualmente los procesos ofensivos. Si tiene más de 4, simplemente use kill en cualquier PID hasta que el primer comando vuelva en blanco. Luego, intente reiniciar su servidor localhost: 3000 nuevamente. ¡Esto no dañará su computadora! Simplemente mata los procesos ruby existentes en su puerto localhost. Un nuevo servidor iniciará estos procesos de nuevo. ¡Buena suerte!
fuente
SOLUCIÓN para Windows:
fuente
Para ubuntu 20,
kill -9 $(ps -aef | grep rails)fuente