JVM終了時に何かする

https://github.com/playframework/play/commit/eca4a6b06cef4e591a24c3fa7c67001b15fec6aa

Play! frameworkのパッチを読んでて気づいた。
java.lang.Runtime#addShutdownHook(Thread)を使うと、現在起動しているJVMの終了時に好きなスレッドを実行できるみたい。
アプリケーションがCtrl+cなど意図しないタイミングで終了された場合に後始末をするような場合に使えそう。

scala> Runtime.getRuntime.addShutdownHook(new Thread { override def run { println("shutdown hooked!") } })

[ここでCtrl+cを押す]

scala> shutdown hooked!