ritengo che modo più semplice si unisce alla shell remota. Basta iniziare erl
con -remsh Node
parametro
$ erl -sname foo
Erlang R13B04 (erts-5.7.5) [source] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]
Eshell V5.7.5 (abort with ^G)
([email protected])1>
un altro terminale:
$ erl -sname bar -remsh '[email protected]'
Erlang R13B04 (erts-5.7.5) [source] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]
Eshell V5.7.5 (abort with ^G)
([email protected])1>
Un'altra opzione è quella di utilizzare potenti capacità di controllo dei job di erl
(Press ^G
)
$ erl -sname bar
Erlang R13B04 (erts-5.7.5) [source] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]
Eshell V5.7.5 (abort with ^G)
([email protected])1>
User switch command
--> h
c [nn] - connect to job
i [nn] - interrupt job
k [nn] - kill job
j - list all jobs
s [shell] - start local shell
r [node [shell]] - start remote shell
q - quit erlang
? | h - this message
--> r '[email protected]'
--> j
1 {shell,start,[init]}
2* {'[email protected]',shell,start,[]}
--> c
Eshell V5.7.5 (abort with ^G)
([email protected])1>
User switch command
--> j
1 {shell,start,[init]}
2* {'[email protected]',shell,start,[]}
--> c 1
([email protected])1>
Si noti che è necessario premere per mostrare il prompt della shell se si sta tornando a quello esistente.
fonte
2010-06-26 07:09:05
Quale sarebbe la procedura migliore per accedere a un database Mnesia in esecuzione da due applicazioni Erlang? Aggiungere un nodo al cluster Mnesia e accedervi in questo modo, sembra un po 'eccessivo? –
@Peter: Quindi usa il modulo rpc se è nello stesso cluster di Erlang o usa lib_chan quando vuoi comunicare attraverso il socket. –
Si consiglia di utilizzare il flag -hidden quando si utilizza una shell remota, soprattutto se si ha a che fare con reti distribuite. Per esempio. erl -sname bar -remsh 'foo @ hynek-notebook' -hidden –