Это смущает, но я полностью застрял и потратил впустую большую часть этого утра. У меня есть выпуск приложения Erlang, созданный relx, развернутый и работающий в контейнере Docker. Мне нужно добраться до оболочки на работающем узле, но я не могу этого сделать. Вот что происходит:
$ docker exec -it 770b497d7f27 /bin/bash
[root@ff /]# /app/bin/ff
Usage: ff {start|start_boot <file>|foreground|stop|restart|reboot|pid|ping|console|console_clean|console_boot <file>|attach|remote_console|upgrade|escript|rpc|rpcterms}
[root@ff /]# /app/bin/ff ping
pong
[root@ff /]# /app/bin/ff attach
Can't access pipe directory /tmp/erl_pipes/[email protected]/: No such file or directory
[root@ff /]# /app/bin/ff remote_console
Eshell V7.1 (abort with ^G)
([email protected])1> ^G
Eshell V7.1 (abort with ^G)
([email protected])1>
И все - я могу выйти с q().
.
В /tmp
нет erl_pipes
.
Кажется, что Control-G захвачен Docker. Не могу попасть в меню "Команда переключения пользователя".
Даже запустить чистую оболочку Erlang не так просто:
[root@ff /]# /app/erts-7.1/bin/erl
{"init terminating in do_boot",{'cannot get bootfile','/app/bin/start.boot'}}
Crash dump is being written to: erl_crash.dump...done
init terminating in do_boot ()
У меня закончились идеи. Любая помощь будет оценена по достоинству.
remote_shell
дает вам удаленную оболочку, но вам также нужен ^G для работы? - person Michael   schedule 07.01.2016remote_console
подключит вас к оболочке работающих узлов (извините, я сказал «remote_shell» выше, не так ли, но вы знали, что я имел в виду, я ожидаю). Если[email protected]
не ваш узел, то я думаю, что он работает не так, как я ожидаю, или не работает. Вы можете попробовать вручную, запустивerl -name '[email protected]' -cookie YOUR_COOKIE -remsh '[email protected]'
, что будет более или менее похоже на то, что делает/app/bin/ff remote_console
. - person Michael   schedule 07.01.2016