Soy nuevo en rails y estoy usando una máquina ubuntu y el IDE de rubymine. El problema es que no puedo detener el servidor de rails. Traté de detener el servidor matando el proceso de rieles. Pero, cuando ejecuto pgrep -l rails
, no se encuentra dicho proceso. Por lo tanto, solo puedo eliminar los procesos de ruby, pero el servidor no se detendrá.
Lo intenté ./script/server stop
(desde que lo comencé corriendo ./script/server start
), pero eso no funcionó. Buscando en Google y buscando algunas publicaciones de stackoverflow, intenté cambiar el puerto de escucha del puerto localhost pero sin éxito. ¿Alguien podría ayudar?
ruby-on-rails
épsilones
fuente
fuente
Respuestas:
Puede usar otros puertos como el siguiente:
Normalmente en su terminal puede intentar
Ctrl + C
apagar el servidor.La otra forma de matar el servidor predeterminado de Ruby on Rails (que es
WEBrick
) es:En su terminal para averiguar el PID del proceso:
Luego, use el número en la columna PID para matar el proceso:
Por ejemplo:
Y algunas de las otras respuestas que encontré son:
Para detener el servidor de rails mientras se está ejecutando, presione:
Volverás a tener el control
bash
. Luego escriba (sin el$
):Y esto volverá al proceso y luego se cerrará
Rails s
correctamente.Es un poco molesto, pero esto supera a matar el proceso manualmente. No es tan malo y es lo mejor que pude entender.
Respuesta actualizada:
Puede usar
killall -9 rails
para eliminar todas las aplicaciones en ejecución con "rails
" en el nombre.killall -9 rails
fuente
{APP_ROOT}/tmp/pids/server.pid
archivo para que no tenga que buscarlo, siempre y cuando el servidor se esté ejecutando. Entonces, si en lugar de hacerloctrl-c
, simplemente ejecuta ese comando kill en otra terminal, matará al servidor Webrick de inmediato.puedes usar el comando grep de la siguiente manera,
y entonces
fuente
killall -9 rails
ps aux | grep puma
pkill -9 rails
para matar todo el proceso de rielesRespuesta actualizada
ps aux|grep 'rails'|grep -v 'grep'|awk '{ print $2 }'|xargs kill -9
Esto matará cualquier proceso de rieles en ejecución. Reemplace 'rieles' con algo más para eliminar cualquier otro proceso.
fuente
Los siguientes son pasos para eliminar el proceso del servidor:
1. lsof -i tcp:3000
2. kill -9 1234
donde
1234
está el PID del proceso: localhost: 3000 display en el paso 1.O
Elimine el archivo (server.pid) debajo
Rails.root/tmp/pids/
y reinicie el servidor.O
Abra la aplicación en otro puerto mediante el comando:
rails s -p 3001
fuente
En mi MAC
killall -9 rails
no funciona. Pero lokillall -9 ruby
hace.fuente
COMMAND
valor también.Generalmente uso:
killall ruby
O
pkill -9 ruby
que matará a todos los procesos relacionados con el rubí que se ejecutan como
rails server
,rails console
, etc.fuente
1. Simplemente elimine el archivo pid del directorio de la aplicación rails
Rails_app -> tmp -> pids -> pid file
Eliminar el archivo y ejecutar
rails start
2. Para Rails 5.0 y superior, puede usar este comando
rails restart
fuente
Úselo
ctrl+c
para apagar su servidor Webrick.Desafortunadamente, si no funciona, cierre con fuerza el terminal y reinícielo.
Otro truco es que
fuente
Elimine el server.pid de la carpeta tmp / pids. En mi caso, el error fue: ya se está ejecutando un servidor. Verifique /home/sbhatta/myapp/tmp/pids/server.pid.
Entonces, elimino server.pid
rm /home/sbhatta/myapp/tmp/pids/server.pid
entonces correrails s
fuente
Paso 1: encuentre cuáles son los artículos que consumen 3000 puertos.
paso 2 : encuentra el proceso llamado
Para Mac
Para Ubuntu
Paso 3: Encuentra el PID del proceso y mátalo.
fuente
Ctrl-Z normalmente debería hacer el truco.
fuente
Solía
killall -9 rails
como Sri sugirió y no funcionó. Ajusté el comandokillall -9 ruby
y el servidor se cerró de inmediato.Tl; dr:
killall -9 ruby
fuente
es tan simple como
nada más y nada menos
fuente
Cuando el servidor rails no se inicia, significa que ya se está ejecutando, entonces puede comenzar utilizando un nuevo puerto, por ejemplo.
o se inicia y se detiene en ese caso si desea eliminar la carpeta temporal en la estructura de directorios de rails , inicia el servidor de rails.
fuente
compruebe el /tmp/tmp/server.pid
Hay un pid adentro.
Por lo general, haré "kill -9 THE_PID" en el cmd
fuente
He notado en Windows (estoy usando 10 pero no estoy seguro de si es lo mismo para Oler). Si usa cmd.exe y ctrl + c, el servidor raisl se detiene correctamente.
Sin embargo, si usa Git Bash, no lo hace. Dice que sí, pero cuando miras los tmp pids, todavía está allí.
Tal vez un error con git bash?
fuente
killall -9 ruby
matará todos los procesos de ruby, y al menos en mi máquina, los servidores rails aparecen como procesos de ruby.killall -9 rails
es mucho más específico y no funciona para versiones anteriores de servidores rails (da un 'rails: no se encontró ningún proceso' porque el proceso se llama ruby)Encontré este problema hace un tiempo. Después de enviar un formulario en activeadmin, el servidor de rails simplemente se colgó y no pude matarlo usando los medios normales (incluso después de ctrl + z todavía se estaba ejecutando en segundo plano). La respuesta del alumno ayudó, pero este comando no necesita identificación de proceso.
fuente
Es tarde para esta pregunta. Aquí están mis 2 centavos. Hice una tarea de rastrillo para detener el servidor cuando no tengo acceso a él. Sin embargo, solo probé en Mac.
Con esto, simplemente puede agregarlo a su proyecto y luego ejecutar el comando rake.
Aqui tienes:
Enlace esencial: la última versión estará aquí. https://gist.github.com/houmanka/289184ca5d8d92de0499#file-server-rake
Algún código aquí:
fuente
Además, asegúrese de ejecutar el comando Cntrl + C en la misma terminal (pestaña) que se utiliza para iniciar el servidor.
En mi caso, tenía 2 pestañas, pero olvidé detener el servidor de la pestaña correcta y me preguntaba por qué Cntrl + C no funciona.
fuente
Una forma súper fácil sería
gem install shutup
luego vaya a la carpeta actual de su proyecto rails y ejecute
shutup
# esto matará el proceso de Rails que se está ejecutando actualmentePuedes usar el comando 'shutup' cada vez que quieras
DICLAIMER: Soy el creador de esta gema.
NOTA: si está utilizando rvm, instale la gema globalmente
fuente
Para mi máquina con Windows 10, Ctrl - C+ Ctrl - Dfunciona.
fuente
Podemos matar la sesión de rails en Linux usando PORT no
aquí 3000 es un puerto no. Ahora reinicie su servidor, verá que su servidor está en estado de ejecución.
fuente
Sigue estos pasos:
fuente
Address already in use - bind(2) for "127.0.0.1" port 3000 (Errno::EADDRINUSE)
Simplemente abra el archivo usando la ubicación dada
sudo vi /Users/user1/go/src/github.com/rails_app/rails_project/tmp/pids/server.pid
encuentre el process_id / thread_id en el que se ejecuta el proceso.
Mata el proceso / hilo especificado usando
kill -9 84699
fuente
En rieles 6 usando
ps aux | grep rails
no estaba devolviendo el proceso del servidorTenía que hacer
ps aux | grep puma
para encontrar el proceso real y luego matarlo usando
kill -9 {process_id}
fuente
Si está utilizando una versión más moderna de Rails y utiliza Puma como servidor web, puede ejecutar el siguiente comando para encontrar el proceso de Puma atascado:
Resultará en una salida similar a esta:
Desea el proceso al que no se refiere
grep
. En este caso, el ID del proceso es 85923.Entonces puedo ejecutar el siguiente comando para matar ese proceso:
fuente