除了运行$ killall -9 beam.smp
之外,当我知道-sname
时,如何以编程方式杀死Erlang节点?
如果我不希望心跳监视器重新启动该过程,我怎样才能确保对上述问题给出的任何答案都会导致心跳停止?
是否有适当的指南将Erlang部署为守护进程?
答案 0 :(得分:10)
kill
和killall
与-9
几乎总是错误的。
您可以使用以下命令轻松要求远程节点退出:
rpc:call(RemoteNode, init, stop, []).
我不知道是否会阻止heart
重新启动它,但我建议如果你希望停止它,你就不应该永远不停地运行它模式。
更新 - Zed指出init:stop
使用heart
做了正确的事情,因此上述rpc:call
是最好的唯一方法。