【问题标题】:Erlang remote shell not workingErlang远程shell不工作
【发布时间】:2017-03-01 23:09:58
【问题描述】:

我的 docker 容器 (CentOS) 有一些奇怪的行为。当我通过 SSH 连接到它时,有一个正在运行的 Erlang VM (api@127.0.0.1) 实例我无法使用 -remsh 参数连接到它,但是我可以 ping 它。我的 Erlang 节点 (api@127.0.0.1) 可以正常工作。

bash-4.2# ./bin/erl -name 'remote@127.0.0.1' -remsh 'api@127.0.0.1'
Eshell V6.1  (abort with ^G)
(remote@127.0.0.1)1> node().
'remote@127.0.0.1'
(remote@127.0.0.1)2> net_adm:ping('api@127.0.0.1').
pong
(remote@127.0.0.1)3> erlang:system_info(system_version).
"Erlang/OTP 17 [erts-6.1] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false]\n"
(remote@127.0.0.1)4> rpc:call('api@127.0.0.1', erlang, node, []).
'api@127.0.0.1'

有 2 个 linux 进程正在运行 - 一个用于实际 VM,另一个用于尝试调用远程 shell 的进程

26 ?        Sl    40:46 /home/vcap/app/bin/beam.smp -- -root /home/vcap/app -progname erl -- -home /home/vcap/app/ -- -name api@127.0.0.1 -boot releases/14.2.0299/start -config sys -boot_var PATH lib -noshell
32542 ?     Sl+    0:00 /home/vcap/app/bin/beam.smp -- -root /home/vcap/app -progname erl -- -home /home/vcap/app -- -name remote@127.0.0.1 -remsh api@127.0.0.1

当我将 Erlang 二进制文件复制到主机(Arch Linux)并运行 ./bin/erl 时,我得到了不同的结果:

[jodias@arch tmp]$ ./bin/erl
Erlang/OTP 17 [erts-6.1] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V6.1  (abort with ^G)
1>

请注意,打印了 Erlang 系统版本,但 docker 容器上缺少该版本(但是 Erlang 二进制文件完全相同)。

【问题讨论】:

  • 我什至尝试在 docker 容器上重新编译 Erlang VM,但没有成功。
  • 我不明白,你的问题是什么?你可以访问 Erlang shell,对,所以,这个功能可以工作......不是吗?
  • 问题是-remsh api@127.0.0.1 你希望在api@127.0.0.1 上获得一个shell,而不是在remote@127.0.0.1 上。

标签: erlang erlang-shell


【解决方案1】:

什么是$TERM 在您尝试远程打开的shell 中?当 TERM 不存在或不知道构建 Erlang 的 ncurses 时,就会出现问题,从而使远程 shell 连接静默失败。试试这个:

TERM=xterm ./bin/erl -name 'remote@127.0.0.1' -remsh 'api@127.0.0.1'

我曾经向 Erlang 邮件列表报告了the problem,但没有得到答复。现在我看到this issue 在 Erlang 问题跟踪器中。请投票让 OTP 团队选择它;)

【讨论】:

  • 感谢瑞思!将 TERM 更改为 xterm 后,它确实设置为“哑”。
猜你喜欢
  • 2019-05-14
  • 2015-02-14
  • 2020-07-24
  • 2011-06-27
  • 1970-01-01
  • 2012-09-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多