[英]How to connect to a registered Node (Erlang) and use it from another erlang application
[英]How to restart an erlang node?
我有一个示例 git push github
这是编程 Erlang 一书中的一个应用示例
你可以按照README.md
我的问题是应用程序 sellaprime 何时开始,我
./bin/sp restart
这将使节点关闭而不是重新启动?
系统在运行的 Erlang 节点内重新启动,这意味着模拟器没有重新启动。 所有应用程序都被顺利删除,所有代码被卸载,所有端口都被关闭,然后系统以与初始启动相同的方式再次启动。 再次使用相同的 BootArgs。
“模拟器未重启”是什么意思?
如果我想重启一个节点,正确的做法是什么?
顺便说一句,是否有任何 API 可以知道当前的发布版本,例如
application:which_applications()
它看起来像您的sb
init 脚本,即使用nodetool
脚本应该为您调用init:restart()
。 如果这样做了,但您的节点反而关闭了,请检查您的日志是否有任何可能的错误(也许您的应用程序之一无法处理重新启动?)。
使用init:restart()
是这样做的方法。 这是一个示例:使用名称(在本例中为test
)启动一个 Erlang 节点:
$ erl -sname test
Erlang/OTP 18 [erts-7.0] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V7.0 (abort with ^G)
(test@host)1> hello.
hello
(test@host)2>
临时启动另一个节点,该节点将对第一个节点进行 RPC 调用:
$ erl -sname other -noinput -noshell -eval "rpc:call('test@host', init, restart, [])" -s init stop
$
观察重新启动的原始节点:
(test@host)2> Erlang/OTP 18 [erts-7.0] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V7.0 (abort with ^G)
(test@host)1>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.