如何将 control-c 捕获到 Erlang shell?

Tur*_*bit 5 erlang

我正在运行一个 gen_server,我想在它退出之前进行一些清理。当我从命令行运行它时,我得到了一个 Erlang shell 提示。我在 gen_server 函数定义中有一个 handle_info({'EXIT'}, From, Reason} 和一个 terminate(Reason, State)。当我在 Erlang shell 中使用 control-c 时,这些似乎都没有被触发。

那么,如何在我的 gen_server 中捕获在 Erlang shell 中输入的 control-c ?

编辑:我一直按 control-c 来获取菜单,然后再次按 control-c 来跳出外壳。

Gre*_*reg 3

你的意思是先按CTRL-C然后(a)bort?CTRL-C它本身被 Shell 拦截来显示菜单。但是,当您按下 abort 时,它会无条件停止 Erlang VM。您需要优雅地退出 shell,例如使用q().init:stop()