繁体   English   中英

如何重启erlang节点?

[英]How to restart an erlang node?

我有一个示例 git push github

这是编程 Erlang 一书中的一个应用示例

你可以按照README.md

我的问题是应用程序 sellaprime 何时开始,我

./bin/sp restart

这将使节点关闭而不是重新启动?

Erlang Doc

系统在运行的 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM