Bug 28704 - Добавить firetrigger для включения сервисов.
Summary: Добавить firetrigger для включения сервисов.
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: service (show other bugs)
Version: unstable
Hardware: all Linux
: P3 enhancement
Assignee: placeholder@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on: 27390
Blocks: 28705
  Show dependency tree
 
Reported: 2013-03-18 15:09 MSK by Sergey V Turchin
Modified: 2019-03-02 09:24 MSK (History)
8 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sergey V Turchin 2013-03-18 15:09:34 MSK
Предлагаю добавить firetrigger для включения сервисов, чтоб достаточно было положить соответствующий system-preset
Comment 1 Dmitry V. Levin 2013-03-18 15:23:36 MSK
Если и делать filetrigger, то, видимо, в пакете service.
Comment 2 Sergey V Turchin 2013-03-28 16:27:02 MSK
Для дистрибутива системы с systemd существующих костылей уже не достаточно, т.к. сервис из пакета с диска дистрибутива, установленного уже после установки дистрибутива будет _только_ в состоянии "отключено".
Comment 3 AEN 2013-03-28 16:40:02 MSK
(В ответ на комментарий №2)
> Для дистрибутива системы с systemd существующих костылей уже не достаточно,
> т.к. сервис из пакета с диска дистрибутива, установленного уже после установки
> дистрибутива будет _только_ в состоянии "отключено".

И что же в этом плохого?
Comment 4 Sergey V Turchin 2013-03-28 16:58:12 MSK
(В ответ на комментарий №3)
> И что же в этом плохого?
В том, что сервис не будет включен по умолчанию, нисмотря ни на что.
При sysvinit он это хтя бы регулируется мантейнером пакета, а с systemd это ну может регулироваться вообще никем, кроме конечного пользователя.

Я предлагаю решение, которое позволит это регулировать Release Manager-у. 
Вроде, этот несуществующий аргумент фигурировал в рассылке.

В текущей ситуации один и тот же пакет будет вести себя по разному, в зависомости от того, нажал ли пользователь галку в выборе устанавливаемого софта при установке или нет. При этом пользователь вообще может не догадаться включить сервис, если ставит совсем другой пакет или не_ставит группу пакетов в установщике, которые тащат необходимые сервисы по зависимостям, при этом имена пакетов и их сервисов в инсталляторе, например, вообще не фигурируют.
Comment 5 Sergey V Turchin 2013-03-28 17:03:43 MSK
Например, если пользователь в установщике снимет галку "Поддержка печати", то потом свежеустановленный cups ему никто не включит.
Comment 6 Dmitry V. Levin 2013-03-28 18:33:26 MSK
(In reply to comment #2)
> Для дистрибутива системы с systemd существующих костылей уже не достаточно,
> т.к. сервис из пакета с диска дистрибутива, установленного уже после установки
> дистрибутива будет _только_ в состоянии "отключено".

%post_service свежеустановленного пакета выполнит systemctl preset, который, в свою очередь, может либо сделать сервис enabled, либо оставить его disabled.
Comment 7 Sergey V Turchin 2013-03-29 15:50:34 MSK
(В ответ на комментарий №6)
> %post_service свежеустановленного пакета выполнит systemctl preset
Для любого сервиса, поведение которого собрался регулировать ReleaseManager дистрибутива? В последнем слове предыдущего предложения 1-я буква "т" -- лишняя, если это не так ;-)
Comment 8 Sergey V Turchin 2013-03-29 17:59:58 MSK
А так же chkconfig делает только
/bin/systemctl -q enable %s.service
, а у cups, например, кроме .service есть еще и .socket и .path .
Comment 9 Alexey Shabalin 2013-03-29 18:05:16 MSK
(В ответ на комментарий №8)
> А так же chkconfig делает только
> /bin/systemctl -q enable %s.service
> , а у cups, например, кроме .service есть еще и .socket и .path .

не вводите в заблуждение.
в cups.service есть секция [Install], где:
Also=cups.socket cups.path
Т.е для systemctl enable cups.service, так же будут включены и cups.socket cups.path
Comment 10 Sergey V Turchin 2013-03-29 18:06:00 MSK
(В ответ на комментарий №9)
> Also=cups.socket cups.path
Ок. Это хорошо.
Comment 11 Sergey V Turchin 2013-03-29 18:06:36 MSK
А еще нужно, чтоб filetrigger и запускал сервис в зависимости от 
$DURING_INSTALL (для сервера это можно отключить).

Например (это прямо сейчас все могут воспроизвести), у пользователя установлен
KDE4, но не установлена samba.
Пользователь тыкается в свойства каталога, закладку раздачи.
Ему там говорят "samba не установлена, давай поставлю".
Он соглашается, samba устанавливается.
Он включает раздачу и нажимает ok.
Результат: никакой раздачи не происходит, даже если все утилиты настройки
отработали правильно, потому, что samba не запущена.
Comment 12 Sergey V Turchin 2013-03-29 18:18:00 MSK
(В ответ на комментарий №9)
> не вводите в заблуждение.
Не цепляйтесь к словам. Я лишь привожу пример.
Или подобное "Also" обязано быть в каждом .service при наличии .socket или .path?
Comment 13 Alexey Shabalin 2013-03-29 18:46:08 MSK
(В ответ на комментарий №12)
> (В ответ на комментарий №9)
> > не вводите в заблуждение.
> Не цепляйтесь к словам. Я лишь привожу пример.
да ладно, это я так, к слову.

> Или подобное "Also" обязано быть в каждом .service при наличии .socket или
> .path?

если нет симлинков в /lib/systemd/system/*.wants/ , то обязательно.