Summary: | Не добавляет alias при установке пользовательского сервиса | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Sergey V Turchin <zerg> |
Component: | systemd | Assignee: | Alexey Shabalin <shaba> |
Status: | REOPENED --- | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P5 | CC: | aris, arseny, nbr, proskur, rider, shaba, zerg |
Version: | unstable | ||
Hardware: | x86_64 | ||
OS: | Linux | ||
Bug Depends on: | |||
Bug Blocks: | 42742, 46625, 53313, 53312 |
Description
Sergey V Turchin
2025-02-27 17:29:32 MSK
Без этого krdp не может запуститься. так добавьте, в чем проблема? (Ответ для Alexey Shabalin на комментарий #2) > так добавьте, в чем проблема? Проблема определиться. Сейчас попробую. А автоматом он не должен сделаться? В unit-файлах секция Install должна обрабатываться при установке пакета или нет? ? И пропал... В конкретном случае у меня зависит функциональность от этого алиаса. Если придётся отслеживать это глобально во всех пакетах самостоятельно, это может быть проблемой. Нужно хотя бы формально определить, кто этим будет официально заниматься, systemd или мантейнер конечного пакета? Когда говорят о юнитах systemd, alias означает символьную ссылку на какой-то юнит. Если некоторому юниту типа target дописать в [Install] директиву Alias= в *.target.d, то на этот таргет будут созданы симлинки. Зачем десятки симлинков на plasma-workspace@.target? Особенно тем, кто не использует KDE.
>Без этого krdp не может запуститься.
C каким сообщением?
Почему нельзя прописать в /usr/lib/systemd/user/plasma-workspace@.target Wants=сервис1 сервис2 ... сервисN ? (Ответ для Arseny Maslennikov на комментарий #7) > Если некоторому юниту типа target дописать в [Install] директиву Alias= в > *.target.d, то на этот таргет будут созданы симлинки Не будут. Об этом баг. (Ответ для Антон Мидюков на комментарий #9) > Почему нельзя прописать Прописано, но безрезультатно. krdp-6.3.2-alt1 из-за бага не запускается. (Ответ для nbr на комментарий #8) > >Без этого krdp не может запуститься. > C каким сообщением? "хрен тебе, а не запускаемый сервис". (Ответ для Sergey V Turchin на комментарий #11) > (Ответ для Антон Мидюков на комментарий #9) > > Почему нельзя прописать > Прописано, но безрезультатно. krdp-6.3.2-alt1 из-за бага не запускается. По имени alias-а, а именно его пытается запустить программа. Мне кажется, вы все напутали с alias. За создание симлинка в /usr/lib/systemd/user/plasma-workspace@.target.d/ отвечает WantedBy в [Install]. А там прописано WantedBy=plasma-workspace.target Заметьте, без "@". Поэтому непонятно, почему симлинк ищете в другом месте. Насколько понимаю, plasma-workspace@.target Ваша придумка, и как с этим жить придумывать вам. (Ответ для Alexey Shabalin на комментарий #14) > Насколько понимаю, plasma-workspace@.target Ваша придумка Нет, апстримная. (Ответ для Alexey Shabalin на комментарий #14) > А там прописано > WantedBy=plasma-workspace.target > Заметьте, без "@". Поэтому непонятно, почему симлинк ищете в другом месте. Т.е. симлинк должен создаться в /usr/lib/systemd/user/plasma-workspace.target.d/ ? (Ответ для Sergey V Turchin на комментарий #16) > Т.е. симлинк должен создаться в /usr/lib/systemd/user/plasma-workspace.target.d/ ? Там он тоже не создаётся. (Ответ для Антон Мидюков на комментарий #9) > Почему нельзя прописать в /usr/lib/systemd/user/plasma-workspace@.target > Wants=сервис1 сервис2 ... сервисN > ? Огласите весь список, пожалуйста. ;-) (Ответ для Alexey Shabalin на комментарий #14) > Насколько понимаю, plasma-workspace@.target Ваша придумка У меня такого нет. Конкретно "plasma-workspace@.target.d/" слямзил у Fedora https://src.fedoraproject.org/rpms/plasma-workspace/blob/rawhide/f/plasma-workspace.spec#_480 Кажется, я начинаю понимать. Автор нижеследующего патча на plasma-workspace ненавидит дислексиков. > % git show --stat 39ecc45e5bdf8cf167b7b128e2c3473069bd5119 > commit 39ecc45e5bdf8cf167b7b128e2c3473069bd5119 > Author: David Edmundson <kde@davidedmundson.co.uk> > Date: Tue Jan 25 22:29:31 2022 +0000 > > [systemd] Fix logout issues > > It is important that we end plasma-core.target plasma-workspace.target > and graphical-session.target when we log out. graphical-session in turn > closes all other apps and daemons and prevents restarts. > Handling it in systemd gives the least racey option. > > graphical-session used to be hanlded in the plasma-ksmserver service > file, but this was removed in 5.24 in a refactor where it caused issues > for Xwayland restarting. > > This patch reintroduces the sentinel programs to close down our target, > which in turn take down the other targets. It also removes a complicated > use of templates that in hindsight didn't really solve anything. > > BUG: 448492 > > Testing done: > - logout of wayland shows all targets as inactive, logging in > repeatedly works smoothly > - logout of X11 behaves the same. > - calling systemctl --user stop plasma-kwin_wayland.service closes the > session > - killing ksmserver on wayland does not close the session > - killing ksmserver on X does > > startkde/startplasma.cpp | 4 ++-- > startkde/systemd/CMakeLists.txt | 4 +++- > startkde/systemd/plasma-core.target | 1 + > startkde/systemd/plasma-workspace-wayland.target | 4 ++++ > startkde/systemd/plasma-workspace-x11.target | 4 ++++ > startkde/systemd/plasma-workspace.target | 8 ++++++++ > startkde/systemd/plasma-workspace@.target | 6 ------ > 7 files changed, 22 insertions(+), 9 deletions(-) После этого коммита вместо plasma-workspace@x11.target они кладут plasma-workspace-x11.target и об этом нигде не написали, и в т. ч. startkde/systemd/README.md не обновили, чтобы никто не догадался. И, вероятно, авторам krdp не рассказали. (In reply to Arseny Maslennikov from comment #20) > После этого коммита вместо > plasma-workspace@x11.target > они кладут > plasma-workspace-x11.target > и об этом нигде не написали, и в т. ч. startkde/systemd/README.md не > обновили, чтобы никто не догадался. > И, вероятно, авторам krdp не рассказали. Короче: 1) Надо выяснить, как в нашей плазме называется её target, по буквам. 2) Узнав имя target, надо вернуться к оригинальному вопросу — что должно находиться в [Install] у krdp. 3) Разобравшись с krdp, стоит тогда определить, кто кому должен при встрече говорить Q ^W^W^W^W прописывать Wants=/WantedBy=. IMHO, здесь существует иерархия более базовых (чаще переиспользуемых) служб и менее базовых, более прикладных (реже переиспользуемых). Соответственно, информацию о зависимости более-базового и менее-базового стоит хранить вместе с менее-базовым. Например, из тройки pipewire, plasma-workspace и krdp самым базовым будет pipewire, а самым прикладным — krdp. Соответственно, стоит в krdp написать [Install]WantedBy=(plasma-workspace) , а в plasma-workspace (усл.) написать [Install]WantedBy=(pipewire) , где в скобках стоят правильные юниты или их совокупности. А давайте без условностей, более просто и конкретно, чтобы понятно было. В текущем виде для /usr/lib/systemd/user/plasma-kcminit.service из пакета plasma-workspace должен создаваться симлинк на Alias? Разбирайтесь в этом в рамках бага на krdp. systemd все делает, о чем ему говорят. kdrp тут нипричем. Прошу отвтеить: в текущем виде для /usr/lib/systemd/user/plasma-kcminit.service из пакета plasma-workspace должен создаваться симлинк на Alias? Если сделаешь systemctl enable, то для Alias сделаются симлинки. Ищи их в /etc. В /lib или /usr/lib их конечно никто делать не будет, эти каталоги для дистрибутивов, для админов /etc. (In reply to Alexey Shabalin from comment #23) (In reply to Sergey V Turchin from comment #24) (вздыхая) кот из дому — мыши в пляс. (In reply to Sergey V Turchin from comment #22) > А давайте без условностей, более просто и конкретно, чтобы понятно было. > > В текущем виде для > /usr/lib/systemd/user/plasma-kcminit.service > из пакета plasma-workspace должен создаваться симлинк на Alias? Извините, но "должен создаваться симлинк на Alias" — это _не_ конкретно и _не_ понятно — а значит, и не просто. В общем-то, именно из-за того, что здесь звучит слишком много непонятных словосочетаний, мы с вами и мусолим эту багу неделями. :( Судя по https://invent.kde.org/plasma/plasma-workspace : plasma-workspace-wayland.target └─R: plasma-workspace.target └─R: plasma-core.target └─W: plasma-kcminit.service см. startkde/systemd/*. Старт plasma-workspace.target уже притягивает plasma-kcminit.service, не требуя для этого никаких симлинков. Стало ли так понятнее? Годится ли ответ? Если нет, тогда лучше перефразируйте вопрос. :) (In reply to Alexey Shabalin from comment #25) > Если сделаешь systemctl enable Кстати, https://systemd.io/DESKTOP_ENVIRONMENTS/ подкрался незаметно. Как мы в свете Sisyphus default disable preset вообще добиваемся того, чтобы такие лаунчеры для DE работали? У гномеров ж то же самое. (Ответ для Arseny Maslennikov на комментарий #27) > (In reply to Alexey Shabalin from comment #25) > > Если сделаешь systemctl enable > > Кстати, https://systemd.io/DESKTOP_ENVIRONMENTS/ подкрался незаметно. Как мы > в свете Sisyphus default disable preset вообще добиваемся того, чтобы такие > лаунчеры для DE работали? > У гномеров ж то же самое. Поподробнее, пожалуйста. Что у гномеров не должно работать. Я пока заметил, что после обновления systemd отвалился suspend: $ SS suspend Operation inhibited by "aris" (PID 2486 "gnome-session-b", user aris), reason is "user session inhibited". User aris is logged in on tty2. Please retry operation after closing inhibitors and logging out other users. 'systemd-inhibit' can be used to list active inhibitors. Alternatively, ignore inhibitors and users with 'systemctl suspend -i'. То есть я из гнома не могу заснуть слегка, потому что я в гноме. |