2011-08-27 31 views
5

标题几乎总结了它。我有一个使用-heart运行的zotonic站点,它使用了很多cpu时间,我无法获得erlang shell。那么,有没有办法杀死虚拟机? killall heartkillall beam.smp不起作用。有没有一种方式来杀死erlang虚拟机,当它与-heart一起运行?

我发现这个问题: Stop Erlang Daemon ,但它并没有真正回答我的问题。

+3

根据我的经验,先杀死心脏,然后杀死波束或波束。 –

+0

@Steve我没有成功尝试过。之后我发现无法获取shell的问题,即:http://groups.google.com/group/zotonic-users/browse_thread/thread/b3971b574e405bcc?pli=1。所以我解决了这个问题,通过解决它似乎的根本问题:)。不过,我认为如何做到这一点应该更好地记录(某处)。 –

+1

在一个命令行中杀死心脏,然后射束。总是为我工作。我们(Zotonic团队)正在寻找非心脏解决方案。 –

回答

2

只需使用:

init:stop(). 

它会杀死心脏过程和所有应用程序。

+1

但他说他不能得到一个Erlang shell,因为这个过程使用了太多的CPU,所以我不认为这对于这个特殊情况是有帮助的。 –

+0

哦,我没有注意'不能得到erlang外壳'的一部分...... – Isac

2

我有这个相同的问题.... 它真的很难杀死它。 我试过正常的路径,不能这样做。 所以我做了这个技巧:

首先,让我们得到了PID

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

所以PID为931

下一页哪个程序创建的过程吗?

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 

所以该程序是... /斌/ beam.smp 所以只是将其移动

mv beam.smp old_beam.smp 

现在你杀了它

kill -9 931 

我终于能杀了它:-)

这是erlangs可靠性的一个证明,一个实际需要破解 - 它为了能够取消服务。

ps:我最初尝试雅司 - 我[pid] - 停止,但它也没有工作。

相关问题