杀死erlang应用程序时捕获

时间:2013-02-12 16:08:02

标签: erlang terminate otp

我有erlang应用程序。我跑了,没关系,一切正常。当我使用Ctrl+C的应用程序杀死erlang shell时,我的应用程序也停止了,这是正确的行为一切都好,但我怎么能抓住这一刻呢?当我的应用程序停止,正常或错误时,我需要清除一些资源并不重要。我尝试清除gen_server:terminate中的资源,但是当我杀死erlang shell时它没有执行。我在哪里可以看到我的应用程序停止/杀死的时刻?

谢谢。

1 个答案:

答案 0 :(得分:3)

当你执行^C时,你没有杀死Erlang shell,你正在杀死整个Erlang系统,整个操作系统进程。所以在那之后所有的Erlang都死了。你想做什么?如果您想以受控方式取下整个系统,请使用init:stop/0/1。它将首先停止所有应用程序及其监督树,以允许行为正确终止。