2011-08-27 13 views
5

El título prácticamente lo resume todo. Tengo un sitio zotonic que se ejecuta con -heart, usa mucho tiempo de CPU y no puedo obtener un shell erlang. Entonces, ¿hay alguna manera de matar al vm? killall heart y killall beam.smp no funcionan.¿Hay alguna manera de matar el erlang vm cuando se ejecuta con -heart?

He encontrado esta pregunta: Stop Erlang Daemon , pero en realidad no responde mi pregunta.

+3

En mi experiencia primero matando el corazón seguido de matar rayo o haz.smp hace el truco. –

+0

@Steve Lo intenté sin éxito. Desde entonces, he encontrado el problema de no poder obtener un shell, a saber: http://groups.google.com/group/zotonic-users/browse_thread/thread/b3971b574e405bcc?pli=1. Así que resolví esto resolviendo el problema subyacente que parece :). Aún así, creo que la forma de hacerlo debería estar mejor documentada (en algún lugar). –

+1

Mata al corazón y haz, en una línea de comando. Siempre me funciona Nosotros (el equipo de Zotonic) estamos buscando soluciones no cardíacas. –

Respuesta

2

sólo tiene que utilizar:

init:stop(). 

matará el proceso de corazón y todas las aplicaciones.

+1

Pero dijo que no puede obtener un shell de Erlang, porque el proceso usa demasiada CPU, por lo que no creo que esto ayude en este caso particular. –

+0

Oh, no presté atención a la parte 'no se puede obtener un caparazón erlang' ... – Isac

2

Tuve este mismo problema .... Y fue realmente difícil matarlo. Probé las rutas normales y no pude hacerlo. así lo hice este truco:

En primer lugar vamos a obtener el PID

sudo netstat -tulpn |grep 8080 
tcp  0  0 0.0.0.0:8080   0.0.0.0:*    LISTEN  931/beam.smp  

Así que el PID es 931.

Siguiente qué programa creado ese proceso?

lsof -p 931 | grep txt 
lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system /home/agarcia/.gvfs 
     Output information may be incomplete. 
beam.smp 931 yaws txt REG  8,1 2053256 22793377 /usr/lib/erlang/erts-5.8.5/bin/beam.smp 

Así que el programa es .../bin/beam.smp por lo que sólo lo mueve

mv beam.smp old_beam.smp 

Y ahora que lo mata

kill -9 931 

Y finalmente pude matarlo :-)

Es un testimonio de la fiabilidad de erlangs que uno realmente necesita para hackearlo para poder para anular el servicio

ps: Originalmente probé yaws -I [pid] --stop pero tampoco funcionó.

Cuestiones relacionadas