У меня есть удаленный узел Erlang и ПК локального разработчика. Я хочу запустить локальный узел [email protected]
, запустить наблюдателя, вызвать 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 [email protected] -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] [async-threads:10] [kernel-poll :ложный]
Eshell V6.1 (прервать с помощью ^G) ([email protected])1>
Как запустить наблюдателя на локальном компьютере и подключить его к удаленному узлу?