【问题标题】:Rebar3 and Erlang -heart flagRebar3 和 Erlang -heart 标志
【发布时间】:2020-11-15 23:46:10
【问题描述】:

我从一个脚本开始我的发布:

#!/bin/bash
ERL_FLAGS=" -args_file config/vm.args -config config/sys.config" rebar3 shell

我的 vm.args 文件中有一个 -heart 命令,因为我希望节点在崩溃后使用脚本自动启动。 对于手动节点崩溃,我使用命令“kill -SEGV pid”,并杀死 heart_beat_kill_pid。 之后,我收到了一条消息:

segmentation fault (core dumped) ERL_FLAGS=" -args_file config/vm.args -config config/sys.config" rebar3 shell
heart: Erlang has closed.
heart: Would reboot. Terminating.

什么都没有发生。

我认为我对 -heart 标志的了解还不够。 节点崩溃的问题需要怎么做?

【问题讨论】:

    标签: bash erlang pid rebar3 erlang-heart


    【解决方案1】:

    根据https://erlang.org/doc/man/heart.html 中的文档,需要设置HEART_COMMAND 环境变量以使节点在崩溃后自动重启。

    另外,由于您似乎在使用rebar3,我建议在rebar.configrelx 属性)中设置{extended_start_script, true}。这将生成一个不错的启动脚本,可用于将 erlang 节点作为守护进程启动。

    【讨论】:

    • 我确实设置了 HEART_COMMAND = ./script.sh ,结果如上(分段错误)。命令:```ERL_FLAGS=" -args_file config/vm.args -config config/sys.config" rebar3 shell Extended_start_script 为真,脚本在哪里?
    • 我无法编辑上一条消息,这是一个编辑:我确实设置了 HEART_COMMAND = ./script.sh ,结果如上(分段错误)。命令:``` ERL_FLAGS=" -args_file config/vm.args -config config/sys.config" rebar3 shell ``` 启动节点,我认为对于 HEART_COMMAND 我需要 erlang 命令,这是真的吗?如果是,那是我的问题。 Extended_start_script 为真,脚本在哪里?
    • 启动脚本是在您构建发布时生成的rebar3 release。它将位于_build/default/rel/<app_name>/bin/ 目录中。
    猜你喜欢
    • 2022-10-01
    • 2017-05-12
    • 2021-12-03
    • 1970-01-01
    • 2021-08-17
    • 2020-12-22
    • 2020-05-30
    • 2012-06-13
    • 2020-04-05
    相关资源
    最近更新 更多