debian.org / О Debian Где взять Debian Поддержка Уголок разработчика Новости Wiki

Автор Тема: Как деплоить/инсталить пакет который не должен прерывать режим работы ?  (Прочитано 1612 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kred

  • Topic Author
  • Сообщений: 1
В смысле я хочу собрать пакет со своим вебприложением на джаве+томкат+само приложение.

Но идея такова что во время обновлениея пакета на более новую версию не хочу останавливать работу пользователей этим приложением. Другими словами сделать  что то по типу файловер кластера из двух паралельно работающих томкатов, и когда начинается обновление то пользователи пользуются только одним томкатом, а второй собственно обновляется. После обновления включается новый томкат , а старый работает ещо допустим 30 мин обслуживая свои старые сессии после чего останавливается и тоже автоматом обновляется.

Кто что может предложить ? 
 

Оффлайн SeHELLioN

  • Сообщений: 910
Вообще идея то так интересна....но не сталкивался....
Я помню давно была статья про наложение патчей на работающее ядро без перезагрузки, может и не то, что нужно, но возможно и родиться какая нибудь идея... :-\
Asus m5a97+Amd fx-8350+4x4GB DDR3 1600MGz+asus gtx670 DCII (перешита в top)
Debian stable
 

Оффлайн dimas000

  • Сообщений: 93
  • Jabber: dimas000@jabber.ru
то ли в xdm, то ли в gdm видел такую фичу. по-моему, в xdm все-таки. там есть в каком-то конфиге опция, при виде которой postinst-скрипт при обновлении пакета не перезапущает демон, чтоб не сыпались запущенные сеансы юзеров. то есть, бинарник-то на диске обновляется, а работать продолжает старый, загруженный в память. ну а при следующем запуске демона уже, соответственно, запускается новый бинарник.
в принципе, осуществить несложно. в postinst пытаемся останавливать демон, но при этом как-нибудь даем init-скрипту знать, что действие stop вызывает именно postinst-скрипт (будь то запуск инит-скрипта с параметром каким, создание пустого файла или еще что). а в stop делаем простую проверку - если установлена в true нужная опция (а-ля "NO_RESTART_ON_UPDATE" или как хошь назови), и при этом остановить демон пытается именно postinst-скрипт (а не просто при выключении или по команде админа) - предпринимаем соответствующие действия. либо ничего, либо реализуем далее необходимое - например, рестарт после закрытия последней клиентской сессии.
 

Теги: