запустить общий узел в оболочке erlang - PullRequest
2 голосов
/ 29 марта 2012

Возникла проблема с ведомым: start / 2 в операционной системе lion, поэтому мне нужно попробовать другое направление: «запустить общий узел с os: cmd автоматически» в оболочке erlang.Другой способ - через bash-файл.Но оба пути сталкиваются с одной и той же проблемой.Если не удается запустить автоматически, мне приходится каждый раз запускать узел вручную.

Eshell V5.9  (abort with ^G)
(emacs@yus-iMac.local)1> os:cmd("erl -name abcd").
"Eshell V5.9  (abort with ^G)\n(abcd@yus-iMac.local)1> *** Terminating erlang ('abcd@yus-iMac.local')\n"
(emacs@yus-iMac.local)3> os:cmd("~/Documents/Project/node_start").
"Eshell V5.9  (abort with ^G)\n(abc@yus-iMac.local)1> *** Terminating erlang ('abc@yus-iMac.local')\n" 

Содержимое bash-файла выглядит следующим образом:

#/bin/sh
erl -name abc

1 Ответ

2 голосов
/ 29 марта 2012

Не то, чтобы я действительно любил этот подход, но для того, чтобы вышеописанная работа работала, вы должны передать параметр "detached" команде 'erl':

erl -name foo

1> os:cmd("erl -name bar -detached").
[]

2> net_adm:ping('bar@pigeon.local').
pong

3> nodes().
['bar@pigeon.local']

Чтение из документа :

-detached

Запускает систему времени исполнения Erlang, отсоединенную от системной консоли. Полезно для запуска демонов и фоновых процессов. Подразумевает -noinput.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...