Автор Тема: Power Manager для легких DE  (Прочитано 1256 раз)

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 451
    • Email
Re: Power Manager для легких DE
« Ответ #30 : 03.04.2024 19:40:13 »
Экспериментально определил, что после стандартной установки юзер может systemctl suspend
В итоге избавился от sudo. При установке запускается от рута сервис suspend и далее сон  через него
С одним пользователем, да, получается.
А попробуйте добавить ещё одного пользователя. Если выйти из сессии первого пользователя, зайти в сессию второго, потом выйти из сессии второго и снова зайти в сессию первого — у меня потребовало пароль рута и на suspend и на выключение. Если после загрузки в сессии других пользователей не заходить, рут не требуется. В многопользовательских системах могут быть проблемы.
« Последнее редактирование: 03.04.2024 19:43:52 от stranger573 »

Оффлайн sfs

  • Давно тут
  • **
  • Сообщений: 84
Re: Power Manager для легких DE
« Ответ #31 : 04.04.2024 08:46:15 »
А попробуйте добавить ещё одного пользователя
Думал об этом , но проверить не успел. Вы опередили. Спасибо
Если выйти из сессии первого пользователя, зайти в сессию второго, потом выйти из сессии второго и снова зайти в сессию первого — у меня потребовало пароль рута и на suspend и на выключение
Такое повторить мне не удалось и это явно был бы баг и не мой
$ systemctl suspend
User w is logged in on tty7.
Please retry operation after closing inhibitors and logging out other users.
Alternatively, ignore inhibitors and users with 'systemctl suspend -i'.
Т.е. достаточно добавить -i

С несколькими юзерами ломается идея определения текущего командой w
Тут только если сделать 2 сервиса
1. suspend@ - как в предыдущих вариантах
2. suspend-root. От рута запускается до syspend.
Находит всех узеров с хомяком : getent passwd |awk -F: '/\/home/ {print $1}'
И циклом делает : systemctl enable suspend@user всем. Или start - надо проверить как лучше...

Есть более прямые идеи?
С 1.1.2024 на Alt из патриотических соображений. Мой репо

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 451
    • Email
Re: Power Manager для легких DE
« Ответ #32 : 04.04.2024 11:38:45 »
   Причина тут в том, что если другой пользователь заходил в свой сеанс и вышел, он остаётся в системе, и остаются в работе некоторые его процессы (какие, зависит от конфигурации). Полагаю, что это неправильно (вы тут точно ни при чём), при выходе из сессии все пользовательские процессы должны быть закрыты (похоже это отдельный баг).

   Команда вида systemctl -i suspend отрабатывает нормально, даже если неактивный пользователь администратор, а пользователь запросивший suspend без административных привилегий. Надо бы ещё проверить в режиме когда другой пользователь из своего сеанса не выходил и активен, зашёл удалённо, например. Но это, к сожалению, я проверить не могу, у меня сетевой вход в системах заблокирован и удалены соответствующие пакеты.
« Последнее редактирование: 04.04.2024 11:55:07 от stranger573 »

Оффлайн sfs

  • Давно тут
  • **
  • Сообщений: 84
Re: Power Manager для легких DE
« Ответ #33 : 05.04.2024 11:14:08 »
Поэкспериментировал с 2 юзерами одновременно и w
Активный юзер (который локально на мониторе) всегда последний в списке. Т.е. достаточно добавить |tail -1
Ну и -i в systemd syspend

Надо бы ещё проверить в режиме когда другой пользователь из своего сеанса не выходил и активен, зашёл удалённо, например.
Если юзер удаленно зашел по ssh - его вообще нет в выводе w
Или что Вы имеете ввиду под "удаленно зашел" ?
С 1.1.2024 на Alt из патриотических соображений. Мой репо

Оффлайн stranger573

  • Мастер
  • ***
  • Сообщений: 1 451
    • Email
Re: Power Manager для легких DE
« Ответ #34 : 05.04.2024 14:05:49 »
Если юзер удаленно зашел по ssh
Именно это. Если во всех вариантах suspend выполняется тогда всё нормально.

Оффлайн sfs

  • Давно тут
  • **
  • Сообщений: 84
Re: Power Manager для легких DE
« Ответ #35 : 05.04.2024 15:03:16 »
достаточно добавить |tail -1
Ну и -i в systemd syspend
power-man-24.04.05-alt1.noarch.rpm
power-man-24.04.05-alt1.src.rpm

« Последнее редактирование: 05.04.2024 15:07:42 от sfs »
С 1.1.2024 на Alt из патриотических соображений. Мой репо

Оффлайн sfs

  • Давно тут
  • **
  • Сообщений: 84
Re: Power Manager для легких DE
« Ответ #36 : 26.04.2024 16:53:46 »
По итогу экспериментов suspend.service показал нестабильную работу на некотором железе
Причем на более новом железе -норм. На старом:
не запускается i3lock: Cannot grab pointer/keyboard и xss-lock suspend.sh падает после 1го срабатывания
Замена i3lock на slock , вроде дает улучшений, но не всегда

Можно бы поэксперементировать с acpid, но , наверное уже перебор
Если у кого есть идеи как улучшить (знатоки systemd)- буду благодарен за идеи.

Кроме того выяснил, что lxsession-logout всегда запускает lock перед suspend. Пропатчил :
lxde-lxsession-0.5.5-alt8.x86_64.rpm
lxde-lxsession-0.5.5-alt8.src.rpm

В итоге если на вашем железе с power-man проблемы - следующий самый легкий вариант - xfce-power-manager.
Чтобы сохранялись настройки надо xfconf-utils.
Добавлять нужный скринлокер так
Опробовал вместе с lxde и icewm - немного тяжелее, но постабильнее
« Последнее редактирование: 26.04.2024 16:57:56 от sfs »
С 1.1.2024 на Alt из патриотических соображений. Мой репо