【发布时间】:2014-12-02 15:31:17
【问题描述】:
我有一个远程 Erlang 节点和本地开发人员的 PC。我想启动本地节点debug@127.0.0.1,启动观察者,调用c:nl/1和其他调试动作。我是这样写的:
#!/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 dev@127.0.0.1 -setcookie ABCDEFFJKGSK \
-kernel inet_dist_listen_min 9001 inet_dist_listen_max 9001 \
-eval "net_adm:ping('nodename@target')."
pkill -f ssh.*-fxN.*target
但是当我运行这个脚本时,我会收到如下消息:
bind: 地址已在使用 错误的本地转发规范 ':debian:' Erlang/OTP 17 [erts-6.1] [来源] [64 位] [smp:4:4] [异步线程:10] [内核轮询:假]
Eshell V6.1(使用 ^G 中止)(dev@127.0.0.1)1>
如何在本地机器上运行观察者并将它们连接到远程节点?
【问题讨论】:
标签: ssh erlang portforwarding ssh-tunnel