【发布时间】:2017-08-27 01:36:59
【问题描述】:
我有一个应用程序,它使用Application 模块,并且还有一个GenServer 实例正在运行。这个GenServer 模块有一个terminate 回调。
如果我强制在服务器实例内部发生一些错误,回调工作正常,但如果我使用Ctrl-C a 中止iex -S mix 会话或仅关闭控制台窗口(它应该写入某个文件),则不会触发。
我试过把它放在init():
Process.flag(:trap_exit, true)
并且还在主模块中调用stop/1:
def stop(state) do
IO.puts "something" #never shown
GenServer.stop(pid) #doesn't seem to work
end
【问题讨论】: