Summary: | redis.service for redis | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Igor Zubkov <icesik> |
Component: | redis | Assignee: | Vitaly Lipatov <lav> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P3 | CC: | aen, amike, evg, gns, lav, lnkvisitor, naf, shaba, vitty |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux | ||
Bug Depends on: | |||
Bug Blocks: | 28008 |
Description
Igor Zubkov
2012-05-14 20:34:53 MSK
Approve [#71552] EPERM redis.git=2.4.7-alt2 please (В ответ на комментарий №1)
> Approve [#71552] EPERM redis.git=2.4.7-alt2 please
Done.
redis-2.4.7-alt2 -> sisyphus: * Tue May 15 2012 Vitaly Kuznetsov <vitty@altlinux> 2.4.7-alt2 - add systemd unit file (ALT #27334) Текущий вариант redis.service - существенно хуже, чем его отсутствие и использование init-скрипта в режиме совместимости. systemd для остановки процесса посылает SIGTERM, и, если процесс через TimeoutSec=90 секунд не завершился, посылает SIGKILL. redis при получении SIGTERM сохраняет базу на диск, далее останавливается. Если базу сохранить не удалось - он отказывается останавливаться и продолжает работать. Для больших баз, сохранение на диск может занять достаточно длительное время. Кроме того, вопрос о необходимости сохранения данных зависит от решаемых задач. init-скрипт сейчас поддерживает три варианта остановки сервиса - см. описание в redis.sysconfig. Предложенный redis.service, фактически, реализует только один из них, и с существенно уменьшенным timeout'ом на сохранение базы. Итого, при переходе на systemd сейчас возможна потеря данных в базе Redis. 1) SIGKILL - прибить не сохраняя. Настраивается конфигом. 2) SIGTERM (default, systemd) 3) SHUTDOWN - почти тот же SIGTERM, не гарантирован при изменении конфигурации остается вариант 2. TimeoutStopSec=300 SendSIGKILL=no # Вдруг что - смотрим сами... А также: старайтесь следовать правилу: unit поставляемый из "коробки" обеспечивает дефолтный запуск сервиса, все отличные варианты запуска обеспечиваются самим пользователем, перенеся unit в /etc/systemd/system и изменив по желанию. Соответственно не надо в дефолтном юните обеспечивать все возможные варианты запуска Ну если возражений нету... |