Назад | Перейти на главную страницу

Разница между вызовом сценария выключения tomcat и процессом убийства

На наших Linux-серверах у нас есть несколько пользователей, которые запускают tomcat.

В настоящее время мы используем команды уничтожения процесса, чтобы убить кота соответствующего пользователя, вместо использования shutdown.sh

Есть ли недостатки у такого подхода?

Смотря что kill сигнал, который вы используете:

  • Если вы используете TERM (числовой эквивалент kill -15), теоретически вы позволяете java процесс сигнализирует своим потомкам и завершается правильным образом.

  • Если вы используете KILL (kill -9), ты не, и вы оставили всякие временные файлы, сокетыи т.д ... позади.

Тем не менее, tomcat имеет свой собственный механизм для правильного завершения работы, а именно вызов RMI, который вы должны использовать либо напрямую, либо с помощью интерфейса вашей операционной системы: service, start, systemctl или любой другой.

Если вы не можете этого сделать по какой-либо причине, вы можете использовать некоторую помощь от оболочки, например tanukiwrapper или supervisord, который также имеет веб-интерфейс.

Нет никакой разницы в поведении, если вы используете сценарий выключения Tomcat или kill -15. Конечный результат точно такой же - чистое выключение. Единственное отличие - это небольшое различие в пути кода, который запускает процесс завершения работы.