我有一个远程Erlang节点和本地开发人员的PC。我想启动本地节点[email protected]
,启动观察者,调用c:nl/1
和其他调试操作。我写了这个:使用ssh端口转发运行Erlang Observer
#!/bin/sh
export ERL_EPMD_PORT=43690
PORT=`ssh -l user target -p 5022 "/usr/bin/epmd -names" | awk '$2 == "target-node" {print $5}'`
pkill -f ssh.*-fxN.*target
ssh -fxNL 43690:`hostname`:4369 target -p 5022 -l user
ssh -fxNL $PORT:`hostname`:$PORT target -p 5022 -l user
ssh -fxNR 9001:`hostname`:9001 target -p 5022 -l user
erl -name [email protected] -setcookie ABCDEFFJKGSK \
-kernel inet_dist_listen_min 9001 inet_dist_listen_max 9001 \
-eval "net_adm:ping('[email protected]')."
pkill -f ssh.*-fxN.*target
但是当我运行此脚本,我得到这样的消息:已经在使用中坏本地转发规范 地址:
绑定“:Debian的:”二郎/ OTP 17 [专家评审组(异步线程:10)[kernel-poll:false]
Eshell V6.1(使用^ G中止)(dev @@@)[sip:4:4] [异步线程: 127.0.0.1)1>
如何在本地机器上运行观察器并将它们连接到远程节点?