Estoy en una Mac, haciendo:
rails server
Yo obtengo:
2010-12-17 12:35:15] INFO WEBrick 1.3.1
[2010-12-17 12:35:15] INFO ruby 1.8.7 (2010-08-16) [i686-darwin10.4.0]
[2010-12-17 12:35:15] WARN TCPServer Error: Address already in use - bind(2)
Exiting
Sé que puedo iniciar uno en un nuevo puerto, pero quiero matar este proceso.
ruby-on-rails
Blankman
fuente
fuente
PID
número real que se muestra en su consola al ingresar la primera línea de código (por ejemplo,12345
).lsof -wni tcp:3000
será siempre mostrar todos los procesos que escuchan en ese protocolo: combinación de puerto. (donde 3000 se debe reemplazar con el puerto del servidor local. Por ejemplo, en Rails, esto es 3000 por defecto).kill -9 $(lsof -i tcp:3000 -t)
fuente
-t
significaspecifies that lsof should produce terse output with process identifiers only and no header - e.g., so that the output may be piped to kill(1).
que supongo que sabes lokill
que harákill -9
por rutina / habitualmente.Necesita obtener la identificación del proceso del programa usando el puerto tcp 3000. Para obtener la identificación del proceso
Y luego, usando esa identificación de proceso, simplemente elimine el proceso con el comando ubuntu kill.
O simplemente ejecute el siguiente comando combinado. Primero buscará pid y luego matará ese proceso.
fuente
kill -9
por rutina / habitualmente.Para cualquiera que se encuentre con esta pregunta que no está en una Mac: suponiendo que sepa que su servidor se está ejecutando en el puerto 3000, puede hacer esto de una sola vez ejecutando lo siguiente:
Pero como Toby ha mencionado, la implementación del fusor en Mac OS es bastante primitiva y este comando no funcionará en Mac.
fuente
-v
bandera también muestra una pequeña cantidad de información sobre qué proceso se eliminó. Por lo tantofuser -kv 3000/tcp
. Por desgracia, el fusor de MacOS no tiene esta capacidad.kill $(lsof -ti tcp:3000)
Sin embargo, es un equivalente bastante cercano.Algunas veces existe la posibilidad de que el servidor de rails no se cierre correctamente. Puedes encontrar el proceso utilizado por los rieles
La salida será como
Aquí process_id 12609 es utilizado por su servidor rails.
Puedes matarlo fácilmente por comando
fuente
kill -9
por rutina / habitualmente.ps aux | grep puma
Todas las respuestas anteriores son realmente buenas, pero necesitaba una forma de escribir lo menos posible en el terminal, así que creé una gema para eso. Puedes instalar la gema solo una vez y ejecutar el comando 'shutup' cada vez que quieras matar el proceso Rails (mientras estás en la carpeta actual).
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
lsof
enfoque es más confiable.ps aux | grep rails usa este comando puedes matar el servidor
fuente
De forma predeterminada, el servidor de rails usa el puerto 3000.
Por lo tanto, tiene 2 opciones para ejecutar el servidor de rails.
1. Puede ejecutar el servidor en otro puerto definiendo un puerto personalizado utilizando el siguiente comando
rails s -p 3001
2. O puede eliminar todo el proceso de ruby ejecutando el siguiente comando y
killall -9 ruby
luego ejecutar
rails server
fuente
Solución de una línea:
fuente
Escribir:
Luego busque -w, -n y -i
-i: material de Internet -n: lo hace más rápido -w: alterna las advertencias
Hay MUCHO más detalles en las páginas del manual
fuente
Si está en una máquina con Windows, siga estos pasos.
Allí tendrá un archivo llamado server.pid
bórralo.
Eso es.
EDITAR: consulte esto
fuente