У меня серьезная производственная проблема. Служба, запускающая Java-приложение в OpenJDK, просто останавливается, казалось бы, в случайное время.
При ручном запуске запускается правильно:
sudo /etc/init.d/name start
Но затем, после неизвестного времени, процесса внезапно больше нет. Примерно через 3 часа после запуска в последнем случае.
Вывод консоли перенаправляется в файл журнала. Здесь нет никаких объяснений. Аналогично в журнале приложения (через платформу ведения журнала Java).
В служебном журнале ничего интересного:
journalctl -u name.service
Во всей системе нет файлов отчетов о сбоях Java
sudo find / -name 'hs_err*'
Где еще я могу найти объяснение? Это очень срочно - мы будем благодарны за любую помощь!
Наиболее вероятной причиной исчезновения приложений без дополнительных журналов является нехватка памяти в системе.
Вы можете подтвердить это, используя
$ grep -i -A20 "Out of memory" /var/log/syslog
Обычно это происходит по одной из следующих причин на среднем сервере:
Бинго! 7 ноября 02:00:51 web1 kernel: [2993761.744187] Недостаточно памяти: убить процесс 23861 (java) с результатом 461 или принести в жертву ребенка. Как это контролируется?
Чтобы управлять им, вы выясняете, что вызывает нехватку памяти в системе, и решаете эту проблему. Вам нужно будет установить мониторинг и использовать его. Посмотрите, что делает система, определите процессы, использующие память, а затем выясните, что они делают и почему.