`
liumengfan
  • 浏览: 33396 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

erlang的epmd

阅读更多
epmd有一个-stop的选项,当要是用
$epmd -stop name

的时候,本机启动的第一个erlang shell时要加上-relaxed_command_check选项,例如:
erl -sname -epmd "epmd -relaxed_command_check -daemon"

这样的话,就会实现如下效果:
[liufan@liufan ~]$ erl -sname a -epmd "epmd -relaxed_command_check -daemon"
Erlang R16B01 (erts-5.10.2) [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V5.10.2  (abort with ^G)
(a@liufan)1> 

[liufan@liufan ~]$ epmd -names
epmd: up and running on port 4369 with data:
name a at port 34772
[liufan@liufan ~]$ ps -ef | grep epmd
liufan    4198     1  0 04:14 ?        00:00:00 epmd -relaxed_command_check -daemon
liufan    4318  3991  0 04:21 pts/4    00:00:00 grep epmd
[liufan@liufan ~]$ epmd -stop a
STOPPED
[liufan@liufan ~]$ epmd -names
epmd: up and running on port 4369 with data:
[liufan@liufan ~]$ 

而当启动的第一个erlang shell没用使用-relaxed_command_check选项时,则使用epmd -stop name则会报错,例子如下:
[liufan@liufan ~]$ erl -sname a
Erlang R16B01 (erts-5.10.2) [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V5.10.2  (abort with ^G)
(a@liufan)1> 

[liufan@liufan ~]$ erl -sname b -epmd "epmd -relaxed_command_check -daemon"
Erlang R16B01 (erts-5.10.2) [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V5.10.2  (abort with ^G)
(b@liufan)1> 

[liufan@liufan ~]$ epmd -names
epmd: up and running on port 4369 with data:
name b at port 41042
name a at port 33383
[liufan@liufan ~]$ ps -ef | grep epmd
liufan    4430     1  0 04:25 ?        00:00:00 /usr/local/lib/erlang/erts-5.10.2/bin/epmd -daemon
liufan    4478  3991  0 04:26 pts/4    00:00:00 grep epmd
[liufan@liufan ~]$ epmd -stop a
epmd: local epmd responded with <>
[liufan@liufan ~]$ epmd -names
epmd: up and running on port 4369 with data:
name b at port 41042
name a at port 33383
[liufan@liufan ~]$ 


注意:当实验完第一个例子之后,要用kill杀掉epmd的进程,再实现第二个例子
分享到:
评论

相关推荐

    Erlang的高级特性和应用

    节点间的通信高效、安全,通过epmd实现类似DNS的名称解析。OTP(Open Telecom Platform)提供了诸如gen_server这样的行为模式,简化了分布式系统中的位置透明性和容错机制。 **Mnesia 分布数据库** Mnesia 是Erlang...

    inside Erlang VM3

    - **Net_kernel和EPMD**:这两个组件构成了Erlang集群的核心部分,负责节点间的通信和管理。 - **传输层**:Erlang集群支持多种传输方式,如TCP/IP、SSL等。 - **Group Leader**:用于统一管理和协调多个节点之间的...

    erlang节点连通测试

    Erlang Port Mapper Daemon (epmd) 是Erlang节点发现和连接的底层服务。每个Erlang节点启动时,都会向epmd注册自己的节点名和端口。确保所有机器上epmd服务运行正常,以便节点间能正确发现彼此。 ### 5. 分布式模块...

    谈谈erlang网络环境下的几种数据流转形式(PPT)

    分布式Erlang利用EPMD(Erlang Port Mapper Daemon)服务来发现和连接到其他节点。 5. **TCP/IP协议栈**:在底层,Erlang使用TCP/IP协议栈进行网络通信,确保数据的可靠传输。它提供了一套标准的套接字接口,可以...

    epmdpxy:使用 Erlang Port Mapper Deamon 模拟 Netsplits

    EPMDPXY 模拟了 EPMD 的基本功能,足以让本地 Erlang 集群工作。 但有一个例外,它在处理PORT_PLEASE2_REQ时不是回复侦听器端口,而是生成一个内部侦听器并回复新的(随机)端口号。 新生成的侦听器进程接受一个...

    RabbitMQ集群 所需的erlang和rabbitmq的rpm包

    4369,用于epmd服务)实现。 4. **RPM包安装**:在Linux系统中,可以使用`yum`或`dnf`命令安装这两个RPM包。例如,对于`yum`,可以运行: ``` sudo yum localinstall erlang-21.3.8.21-1.el7.x86_64.rpm rabbitmq...

    erlang-haskell-interface:制作 RPC

    erlang-haskell-interface 最初是从找到的 0.1 tarball 中复制的。 感谢 Eric Sessoms (@...runghc Test将启动一个 haskell erlang 节点,该节点将自身注册到 EPMD 并将响应 Erlang 分发协议定义的“SEND_NAME”

    mule-erlang-transport:一个 Mule 传输器,可以向 Erlang 节点发送消息和从 Erlang 节点接收消息

    如果你有一个 Erlang 应用程序已经在运行 Mule 的主机上运行, epmd将已经运行。 否则,您需要手动启动它。 为此,请使用适合您环境的启动命令(例如, )。用法发行版可在 Central 上获得。 快照构建在 Sonatype ...

    erlang-deploy:Sqor 如何部署 Erlang 代码

    节点间通过 EPMD(Erlang Port Mapper Daemon)进行发现和连接,实现数据和状态的共享。 8. **错误处理与容错** Erlang 提供了强健的错误处理机制,如进程间异常传播和恢复,以及 crash log 用于定位问题。通过...

    erlang-amqp_dist:基于amqp的erlang分发协议

    amqp erlang协议分发器实现 编译 ./钢筋3 跑 在config / sys.config中编辑amqp uris运行:erl -pa _build / default / lib / * / ebin -proto_dist amqp -no_epmd -name -setcookie change_me -config ./config/sys...

    offline.zip

    ExecStart=/usr/lib64/erlang/erts-9.3/bin/epmd -daemon ExecStart=/usr/lib64/erlang/lib/rabbitmq_server-3.8.1/sbin/rabbitmq-server ExecReload=/bin/kill -s HUP $MAINPID LimitNOFILE=65536 Restart=on-...

    RabbitMQ:安装、配置与使用初探

    如果启动时出现 `epmd error for host “demo”: timeout` 错误,需要编辑 `/etc/hosts` 文件,添加主机名记录: ```bash echo "127.0.0.1 demo" &gt;&gt; /etc/hosts ``` #### 二、配置 ##### 2.1 创建用户 默认情况...

    coe-rabbitmq

    RabbitMQ集群集群意味着连接多个系统以形成单个逻辑代理。 由于不同节点中的rabbitmq通过Erlang(以下称为...1.港口4369-由epmd,RabbitMQ节点和CLI工具使用客户端使用的5672、5671-AMQP 0-9-1和1.0端口(根据TLS应用更

    RabbitMq 集群搭建linux

    - **4369 (EPMD)**:用于节点间发现和通信。 - **5672, 5671 (AMQP 0-9-1 and 1.0 without and with TLS)**:标准的AMQP协议端口,分别对应非加密和加密传输。 - **25672**:Erlang分布式的内部通信端口,默认计算...

    Spring Cloud Ubuntu环境部署的步骤与注意事项

    在部署过程中,可能会遇到网络问题,例如RabbitMQ无法启动,提示"unable to connect to epmd on xxxx: timeout (timed out)"。这种情况下,检查`/etc/hosts`文件,确保主机名解析正确。另外,对于远程访问RabbitMQ,...

Global site tag (gtag.js) - Google Analytics