Как аккуратно завершить работу встроенного JRuby в ответ на SIGTERM для процесса JVM?
Я использую сервер Middleman (который использует Webrick) на JRuby внутри процесса JVM, используяorg.jruby.embed.ScriptingContainer
API.
Если я аккуратно завершу работу и остановлю сервер внутри JVM, все будет работать как положено.
Но если я отправлю SIGTERM процессу JVM (например, нажав ctrl + C в командной строке), консоль вернется, но процесс JVM не завершится - он будет зависать бесконечно, пока я не отправлю ему SIGKILL.
Я попытался зарегистрировать отключение JVM, чтобы завершитьScriptingContainer
экземпляр, но крюк никогда не срабатывает. Я не уверен почему ... возможно, JRuby как-то проглотил SIGTERM?
Как я могу заставить JVM полностью отключиться, даже если он содержит работающий сервер Webrick?