[devel] Поддержка systemd в post/preun_service скриптах

Dmitry V. Levin ldv на altlinux.org
Чт Фев 7 02:48:49 MSK 2013


On Wed, Feb 06, 2013 at 08:44:15PM +0400, Alexey Shabalin wrote:
> 5 февраля 2013 г., 4:14 пользователь Dmitry V. Levin написал:
> > On Mon, Feb 04, 2013 at 04:35:26PM +0400, Alexey Shabalin wrote:
> >> 4 февраля 2013 г., 16:29 пользователь Pavel Shilovsky написал:
> >> > 4 февраля 2013 г., 16:11 пользователь Alexey Shabalin написал:
> >> >> 4 февраля 2013 г., 16:02 пользователь Pavel Shilovsky написал:
> >> >>> Добрый день!
> >> >>>
> >> >>> Сейчас работаю над поддержкой и systemd и sysvinit в спеках OpenStack
> >> >>> (сейчас там жёстко пробито использование systemd, что делалось на
> >> >>> скорую руку). Обнаружил, что для нормальной поддержки обеих систем не
> >> >>> хватает того, что скрипты post_service и preun_service умели понимать,
> >> >>> что система работает с systemd и вызывали соответствующие команды.
> >> >>> Нашёл багу, где аналогичное уже сделано для скрипта service:
> >> >>> https://bugzilla.altlinux.org/show_bug.cgi?id=24989
> >> >>
> >> >> Если Вы заметили, то баг закрыт, т.е. исправлен.
> >> >> Больше ничего делать не надо.
> >> >> service умеет понимать, зачем этому же учить post/preun_service?
> >> >
> >> > Скрипты post/preun_service вызывают помимо service команду chckonfig.
> >> chkconfig тоже обучен работе с systemd. сервисы успешно регистрируются.
> >
> > Обучить post/preun_service по аналогии с service все равно нужно для того,
> > чтобы проще было поддерживать сервисы, в которых есть service-файлы и
> > уже нет init-скриптов.  Но это надо сделать более тонко, чем в
> > вышеупомянутом патче.
> 
> В общем да. Существуют такие dbus-сервисы (например
> accounts-daemon.service) для которых нет init-скрипта, но которые не
> мешало бы рестартовать при systemd.
> 
> >
> >> Другое дело, что они по умолчанию в ALTLinux не включаются.
> >
> > Хорошо бы запаковать каталоги, описанные в systemd.preset(5), а также
> > /lib/systemd/system-preset/99-default.preset оттуда же.
> Я упаковал пока федорину копию /lib/systemd/system-preset/90-default.preset

Что-то там уж больно много всякой всячины разрешено.
И федоризмы остались, такие как atd (у нас atd встроен в crond).

> Теперь нужно ещё добавить вызовы systemctl preset.

Вот прямо в post_service его и надо будет вставить.

> Я пока не пакую никаких макросов для rpm.
> Надо придумать куда лучше их вставить:
> http://cgit.freedesktop.org/systemd/systemd/tree/src/core/macros.systemd.in

По идее, после доработки {post,preun}_service нам будет достаточно
нынешних %{post,preun}_service.

Насколько я понимаю, в случае sd_booted реализация post_service должна
делать примерно то же, что %systemd_post и %systemd_postun_with_restart
вместе взятые, в preun_service - примерно то же, что %systemd_preun.


-- 
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 198 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20130207/8f0330f9/attachment-0001.bin>


Подробная информация о списке рассылки Devel