【问题标题】:How to ban ban ctrl+c in erlang如何在erlang中禁止禁止ctrl+c
【发布时间】:2020-04-14 13:06:39
【问题描述】:

我使用run_erl来启动一个erlang应用程序,就像这样

run_erl -daemon /tmp/erl_pipe /tmp/erl_log "erl -name 1@127.0.0.1 -setcookie 123456"

然后我像这样附加到 erlang shell

to_erl /tmp/erl_pipe

问题是,我曾经用'ctrl + c'退出erlang shell,在这种情况下,'ctrl+c'将退出主节点,我已经看到我通过修改erlang / OTP来禁止这个命令源码,怎么做?

【问题讨论】:

    标签: erlang


    【解决方案1】:

    erl +Bi 启动 Erlang。请注意,如果忽略信号,您必须使用init:stop()(shell 中的快捷方式q())或halt() 来停止节点。此外,如果使用此标志,Ctrl-G 菜单将没有 q 选项。

    也可以使用+Bc,它使 Ctrl-C 中止当前的 shell 命令,而不是停止整个节点。在这种情况下,您仍然可以使用 Ctrl-G 菜单中的 q。

    有关运行时系统标志的完整文档,请参阅 http://erlang.org/doc/man/erl.html#emu_flags

    【讨论】:

    • 感谢您的回答,但这不是我想要的。我不想将 erl 启动为 'erl +Bi' 或 'erl + Bc',因为我需要在后台运行应用程序,这样我才能在日志中看到 erlang shell 输出。无论如何,谢谢。
    • 您应该在 run_erl 命令中将 +B 标志与其他 erl 标志(上面的 -name 和 -setcookie)结合起来。这将避免当您使用 to_erl 附加时,使用 Ctrl-C 意外杀死节点。
    • 请注意,使用 to_erl,您应该按 Ctrl-D 断开连接。 +B 标志只是为了确保您不会误按错误键并关闭节点。
    猜你喜欢
    • 2022-01-23
    • 2018-11-14
    • 2021-06-14
    • 2011-01-05
    • 1970-01-01
    • 2021-05-14
    • 2021-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多