有没有办法阻止 Erlang 服务器自动启动 epmd?

Posted

技术标签:

【中文标题】有没有办法阻止 Erlang 服务器自动启动 epmd?【英文标题】:Is there a way to stop Erlang servers from automatically starting epmd? 【发布时间】:2013-06-23 20:53:36 【问题描述】:

如果 Erlang 服务器尚未运行,它将自动生成 epmd(Erlang 端口映射器守护程序)。我更愿意使用 systemd 作为单独的服务来管理 epmd。这样如果我在一台主机上运行多个 Erlang 服务器(例如 RabbitMQ 和 ejabberd),如果自动生成 epmd 的服务器关闭,epmd 不会消失。 systemd 将在服务关闭时清理所有杂散进程,因此自动生成的 epmd 将无法生存。

我可以通过在启动任何 Erlang 服务器之前确保 epmd 作为单独的服务运行来处理这个问题,但我想进一步确保 epmd 仅作为单独的服务运行。

【问题讨论】:

This answer 也可能适用于这个问题。 【参考方案1】:

您始终可以像任何其他守护程序一样在启动时只使用start epmd。

也就是说,当您退出自动启动它的 erl 实例时,epmd 实际上并没有退出。 据我所知,您必须手动杀死它。

至少在 Linux 和 OS X 上,这似乎是真的。

【讨论】:

我用 systemd 启动我的 Erlang 守护进程,所以当我关闭主守护进程时,epmd 会被杀死。最好防止守护进程启动 epmd 以避免任何错误,但现在在任何其他 Erlang 守护进程为我工作之前单独启动 epmd。

以上是关于有没有办法阻止 Erlang 服务器自动启动 epmd?的主要内容,如果未能解决你的问题,请参考以下文章

windows安装RabbitMQ因为用户名为中文文件夹导致RabbitMQ服务启动失败解决办法

有没有办法阻止 SQL Express 2008 空闲?

有没有办法阻止 iTunes 商店 URL 在 OS X 中启动 iTunes 应用程序?

在没有 epmd 的情况下启动 erlang VM

Cocos2d 和 iOS:有没有办法阻止屏幕保护程序在我的游戏中启动?

启动远程 Erlang 节点