3

我有erlang应用程序。我运行它,没关系,一切正常。当我用我的应用程序杀死 erlang shell 时Ctrl+C,我的应用程序也停止了,这是正确的行为,但我怎样才能抓住这一刻?当我的应用程序停止时,我需要清除一些资源,正常或有错误都没关系。我尝试清理资源gen_server:terminate,但是当我杀死 erlang shell 时它没有执行。我在哪里可以捕捉到我的应用程序停止/终止的时刻?

谢谢你。

4

1 回答 1

3

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

于 2013-02-12T17:24:12.840 回答