Я хочу смочь иметь две оболочки Erlang для разговора. Я работаю на OS X.
Я попробовал tut17 пример здесь.
Я также попробовал:
$ erl -sname foo
и затем в новом Терминале:
$ erl -sname bar
(bar@elife)1> net_adm:ping(foo@elife).
pang
Какие-либо идеи?
Это вроде сломано на Mac. По умолчанию Mac не может разрешить свое собственное шрифтовое изображение. Имя вашего хозяина действительно, вероятно, «elife.local».
Если вы начнете ERL с помощью FQDN, то пинги будут работать.
Т.е. вы начнете его с
$ erl -name foo@elife.local
Это, вероятно, может быть зафиксировано, сделав MAC, способное разрешить его собственное короткое имя
, вот пример вывода из моего Mac. Когда я делаю -sname, я получаю тот же результат, что и вы.
Первый узел:
$ erl -name foo@mookie.local
Erlang R13B03 (erts-5.7.4) [source] [smp:2:2] [rq:2] [async-threads:0] [kernel-poll:false]
Eshell V5.7.4 (abort with ^G)
(foo@mookie.local)1>
Другой узел:
$ erl -name bar@mookie.local
Erlang R13B03 (erts-5.7.4) [source] [smp:2:2] [rq:2] [async-threads:0] [kernel-poll:false]
Eshell V5.7.4 (abort with ^G)
(bar@mookie.local)1> net_adm:ping('foo@mookie.local').
pong
для узлов общаться друг с другом, оба должны иметь одинаковое печенье. В той же коробке он работает так, как оно в конечном итоге, используя файл cookie / .erlang.cookie. Если этот файл нет, он создает новый файл и поместите в нем какое-либо случайное cookie. Будущие снаряды используют одно и то же печенье. Но всегда лучше указать cookie в командной строке через параметр setcookie.
arl-name (скрыто) -Setcookie mycookie
Упрощенное исправление может просто редактировать файл / etc / hosts и убедиться, что у вас есть что-то вроде этой строки:
127.0.0.1 Localhost Elife
Мой Mac работает нормально с Shortnes И я верю, что это то, что это сделало.