Rails server dice puerto ya utilizado, ¿cómo matar ese proceso?


Estoy en un mac, haciendo:

Servidor Rails

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 eliminar este proceso.

Author: Blankman, 2010-12-17

9 answers

Asumiendo que estás buscando matar lo que está en el puerto 3000 (que es lo que webrick normalmente usa), escribe esto en tu terminal para averiguar el PID del proceso:

$ lsof -wni tcp:3000

Luego, use el número en la columna PID para matar el proceso:

$ kill -9 PID
 567
Author: idlefingers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-12-17 17:47:23

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

 94
Author: Bijan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-05 04:10:54

Necesita obtener el id del proceso del programa utilizando el puerto tcp 3000. Para obtener el id del proceso

lsof -i tcp:3000 -t

Y luego usando ese id de proceso, simplemente mata el proceso usando el comando ubuntu kill.

kill -9 pid

O simplemente ejecute el comando combine mencionado a continuación. Primero buscará pid y luego matará ese proceso.

kill -9 $(lsof -i tcp:3000 -t)
 24
Author: Shahzad Tariq,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-27 12:19:23

Para cualquiera que tropiece con esta pregunta que no está en un Mac: suponiendo que sepa que su servidor se está ejecutando en el puerto 3000, puede hacer esto de una sola vez ejecutando lo siguiente:

fuser -k 3000/tcp

Pero como Toby ha mencionado, la implementación de fuser en Mac OS es bastante primitiva y este comando no funcionará en mac.

 16
Author: saneshark,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-22 22:30:58

Algunas veces existe la posibilidad de que el servidor rails no se cierre correctamente. Puede encontrar el proceso utilizado por rails

Carriles Ps aux | grep

La salida será como

user     12609  9.8  0.5  66456 45480 pts/0    Sl+  21:06   0:02 /home/user/.rvm/rubies/ruby-2.2.0-preview1/bin/ruby bin/rails s

Aquí process_id 12609 es usado por su servidor rails.

Se puede matar fácilmente por comando

Kill -9 12609

 13
Author: devudilip,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-16 15:40:41

Todas las respuestas anteriores son realmente buenas, pero necesitaba una forma de escribir lo menos posible en la 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 (estando en la carpeta actual).

gem install shutup

Luego vaya a la carpeta actual de su proyecto rails y ejecute

shutup # esto eliminará el proceso Rails que se está ejecutando actualmente

Puede usar el comando 'shutup' cada vez usted quiere

DICLAIMER: Yo soy el creador de esta gema

NOTA: si está utilizando rvm, instale la gema globalmente

rvm @global do gem install shutup
 10
Author: Lorenzo Sinisi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-17 14:54:46

Ps aux / grep rails utilice este comando puede matar el servidor

 2
Author: Rocker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-10 09:03:17

Escriba:

man lsof

Luego busca-w,- n, y-i

- i: cosas de internet - n: hace que sea más rápido - w: cambia las advertencias

Hay muchos más detalles en las páginas de manual

 -4
Author: InsanelyADHD,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-20 20:21:22

Si está en una máquina con Windows, siga estos pasos.

c:/project/
cd tmp
c:/project/tmp
cd pids
c:/project/tmp/pids
dir

Allí encontrará un archivo llamado servidor.pid

Eliminarlo.

c:/project/tmp/pid> del *.pid

Eso es todo.

EDITAR: Por favor refiérase a esto

 -6
Author: Prabhakar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 10:31:37