Bug 26390 - Странное поведение init-скриптов
Summary: Странное поведение init-скриптов
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: zarafa (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Lenar Shakirov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-09-29 09:59 MSK by Radik Usupov
Modified: 2011-09-29 12:11 MSK (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Radik Usupov 2011-09-29 09:59:01 MSK
Коллеги, наблюдаю странное поведение init-скриптов в разных виртуальных окружениях и ядрах. Не знаю что с чем связано, поэтому прошу помочь разобраться.
Суть:
Есть виртуалка на openvz, с ядром 2.6.18-ovz-rhel-alt13.M51.18 #1 SMP Thu Dec 23 14:07:02 UTC 2010 x86_64 GNU/Linux
Есть виртуалка на kvm, я ядром 2.6.38-std-def-alt8.1 #1 SMP Fri Jun 3 10:16:35 UTC 2011 x86_64 GNU/Linux
На обоих системах р6.
Рассмотрим на примере init-скрипта zarafa-spooler.
Если запускать через /etc/init.d/zarafa-spooler, то все запускается и работает.
Но если захотеть узнать статус через /etc/init.d/zarafa-spooler status, то на виртуалке с openvz получим ошибку "zarafa-spooler is dead, but stale PID file exists". На виртуалке с kvm все отрабатывает как надо.
После выяснений причин такого поведения, оказалось, что это из-за параметра "--expect-user root" в init-скрипте. Если его убрать, то все нормально отрабатывает.

Когда писал скрипты для Zarafa использовал для примера /etc/init.d/template

Собственно мои патчи:
init-скрипт: http://git.altlinux.org/people/radik/packages/?p=zarafa.git;a=blob;f=patches/zarafa-7.0rc2-alt-use-init.alt.patch;h=93d3bfd92b990d76025721745f19b39fb459c67e;hb=HEAD#l890
Оригинал для RH: http://git.altlinux.org/people/radik/packages/?p=zarafa.git;a=blob;f=zarafa/installer/linux/zarafa-spooler.init.rhel;h=09e83c9b7d1d337169c70f5b0b94f2a420969c77;hb=HEAD

Пошу помочь разобраться с багой, ибо совсем не комильфо.
Спасибо!
Comment 1 Vitaly Kuznetsov 2011-09-29 11:29:41 MSK
Ядра тут ни при чём.

Могу предположить, что демоны свитчатся в пользователей собственными средствами, т.е. работают не под root. Достаточно посмотреть ps aux | grep zarafa. Если это так, то и параметр expect-user должен быть иным.
Comment 2 Radik Usupov 2011-09-29 11:37:35 MSK
Виталий спасибо!
Так как пользователь может  менять пользователя, от которого может запускаться zarafa, я вообще убрал эти параметры.
Результатом стал вот этот коммит: http://git.altlinux.org/people/radik/packages/?p=zarafa.git;a=commit;h=807ec93c7eeeebd86b2c3e9c47f0199662a61e6b

Спасибо!
Comment 3 Vitaly Kuznetsov 2011-09-29 12:04:21 MSK
Если пользователи, под которыми запускаются демоны, являются настройками в конфигах, то с точки зрения безопасности лучше эти параметры достать и использовать в init-скрипте (установить expect-user в ожидаемое значение).
Comment 4 Radik Usupov 2011-09-29 12:11:26 MSK
Виталий, если научишь, буду благодарен.
Хотя бы пример уже существующего в альте пакета.