Мы запускаем кластер серверных приложений Java Spring на экземплярах AWS EC2 под управлением Centos 7. У нас есть мониторы работоспособности, и иногда срабатывает сигнал тревоги, и мы обнаруживаем, что процесс Java незаметно просто исчез. Мы ничего не можем найти ни в одном из журналов... ни в наших собственных, ни в системных журналах.У нас есть внешний «catch Throwable» вокруг нашего собственного кода, который регистрирует то, что он перехватывает, но мы запускаем Tomcat, который может иметь свои собственные потоки. Мы добавили дополнительное ведение журнала, чтобы попытаться зафиксировать момент его исчезновения, но пока это не дало никакой информации.
Я просмотрел этот вопрос: как узнать, почему процесс Java бесследно умер в Linux. Я не вижу там ничего полезного.
В настоящее время мы не можем задействовать средство запуска этих процессов в решении. Это долгая история. Поверьте мне, мы пытались идти по этому пути.
Какие-либо предложения? Мне интересно, может быть, мне следует обернуть процесс Java во внешний родительский процесс, который тщательно отслеживает и регистрирует все сигналы от дочернего процесса Java. Мне интересно, есть ли такое готовое решение, которого я еще не нашел. Любые идеи очень приветствуются.