..$ 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
temp
carpeta puede solucionar su problema.Respuestas:
Puede eliminar el
server.pid
archivo.rm /your_project_path/tmp/pids/server.pid
Más:
prueba en OSX:
sudo lsof -iTCP -sTCP:LISTEN -P | grep :3000
o en linux:
ps -aef | rieles grep
o
lsof -wni tcp:3000
matar 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
ruby
ejecutandotop
obteniendo el PID y luego ejecutándolokill -9 <PID>
server.pid
solo contiene el ID de proceso del servidor en ejecución.Si lo haces:
more /your_project_path/tmp/pids/server.pid
obtendrá un número (digamos 6745) que puede usar para detener el servidor anterior con el comando kill:
kill -9 6745
y luego puedes eliminar el archivo con el
rm
comandorm /your_project_path/tmp/pids/server.pid
fuente
server.pid
invertidas haría que el shell intentara ejecutar server.pid, ¿no es así?Si está utilizando docker-compose, y en docker-compose.yml tiene:
volumes: - .:/myapp
Eso 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.pid
en 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 shutup
Esto 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 shutup
fuente
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.pid
archivo. Luego, cuando vuelve a iniciar el servidor,rails server
orails s
crea 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.pid
archivo.Copia el número que encuentres allí.
correr
kill -9 [PID]
¿Dónde
[PID]
está el número que copió delserver.pid
archivo?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 sirm
no 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.pid
Regresará algo como
65829
Entonces MATA ese PID =>
kill 65829
fuente
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 s
fuente
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 rails
y entonces
kill -9 [pid]
De otra manera
lsof -wni tcp:3000
y 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