Как аккуратно завершить работу встроенного 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?

Ответы на вопрос(2)

Ваш ответ на вопрос