Erlang 二郎心跳

Erlang 二郎心跳,erlang,heartbeat,erl,Erlang,Heartbeat,Erl,我正在尝试创建一个可以在同一网络上的两台不同机器上运行的应用程序,当其中一个应用程序崩溃时,我希望使用erlang心跳系统使其重新启动。我该怎么做 我已经阅读了文档,但还没有弄清楚如何在实践中实现这一点 谢谢您是否特别阅读并尝试按照那里的说明操作?特别是,您必须首先将环境变量HEART_命令设置为用于重新启动系统的完整命令行 为了简化此过程,您可以使用如下启动脚本: #!/bin/sh erl -detached -heart -env HEART_COMMAND "$0 $@" -env HE

我正在尝试创建一个可以在同一网络上的两台不同机器上运行的应用程序,当其中一个应用程序崩溃时,我希望使用erlang心跳系统使其重新启动。我该怎么做

我已经阅读了文档,但还没有弄清楚如何在实践中实现这一点

谢谢

您是否特别阅读并尝试按照那里的说明操作?特别是,您必须首先将环境变量HEART_命令设置为用于重新启动系统的完整命令行

为了简化此过程,您可以使用如下启动脚本:

#!/bin/sh
erl -detached -heart -env HEART_COMMAND "$0 $@" -env HEART_BEAT_TIMEOUT 20 -sname mynode
#!/bin/sh
erl -detached -heart -env HEART_COMMAND "reboot" -env HEART_BEAT_TIMEOUT 20 -sname mynode
在某些环境(如嵌入式系统)中,您可能更喜欢完全重新启动操作系统,并且可以简单地运行以下操作:

#!/bin/sh
erl -detached -heart -env HEART_COMMAND "$0 $@" -env HEART_BEAT_TIMEOUT 20 -sname mynode
#!/bin/sh
erl -detached -heart -env HEART_COMMAND "reboot" -env HEART_BEAT_TIMEOUT 20 -sname mynode

我尝试使用“erl-heart-env heart\u BEAT\u TIMEOUT 20-env heart\u COMMAND heart-shutdown”打开erlang(在ubutnu中)shell,并使用CTRL+Z退出shell。20秒后,我收到错误:“heart:Wed Apr 11 17:23:10 2018:erlang已关闭”。但什么都没有发生。文档的这部分是神秘的。“心脏停搏”仅在Windows上有效,并且仅用于帮助触发Windows计算机上的重新启动(在其他平台上完全没有效果)。在类Unix系统上,您可以简单地使用“reboot”、“sudo reboot”或类似的命令。