ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] polkit without systemd
@ 2014-09-01 13:02 Alexey Shabalin
  2014-09-01 14:28 ` Денис Смирнов
  2014-09-01 16:21 ` Dmitry V. Levin
  0 siblings, 2 replies; 13+ messages in thread
From: Alexey Shabalin @ 2014-09-01 13:02 UTC (permalink / raw)
  To: Dmitry V. Levin, ALT Linux Team development discussions

День добрый.
После миграции polkit с ConsoleKit на logind(часть systemd), некоторые
популярные DE требуют перехода на systemd. При работе под SysV могут
наблюдаться различные проблемы.
Объезд некоторых проблем описан тут: http://www.altlinux.org/Sysvinit
Для полноценной работы возможные 2 варианта:
1) вернуть поддержку CK в polkit, и обеспечить выбор между CK и logind в runtime
патч существует:
https://bugs.freedesktop.org/show_bug.cgi?id=63504

2) обеспечить работу logind под SysV
- вместо прямого запуска systemd-logind запускать скрипт systemd-logind-launch:
--------------------
if ! mountpoint -q /sys/fs/cgroup; then
    mount -t tmpfs -o uid=0,gid=0,mode=0755 none /sys/fs/cgroup
fi
if ! mountpoint -q /sys/fs/cgroup/systemd; then
    mkdir -p /sys/fs/cgroup/systemd
    mount -t cgroup -o nosuid,noexec,nodev,none,name=systemd systemd
/sys/fs/cgroup/systemd
fi
mkdir -p /run/systemd

exec /lib/systemd/systemd-logind
------------------------

- в этом скрипте,при монтировании  /sys/fs/cgroup,
/sys/fs/cgroup/systemd, мы обманываем logind, как будто он работает
под systemd. Но из этого обмана надо исключить тех, кого мы обманывать
не хотим -  service, chkconfig
service использует утилиту sd_booted. её лучше переписать, и научить
использовать функцию sd_booted из libsystemd (например так
http://git.pld-linux.org/?p=packages/systemd.git;a=blob;f=systemd_booted.c)
Или я могу в systemd-utils положить эту утилиту systemd_booted и
переключиться на её использование.
Аналогично надо поправить chkconfig.

У кого есть какие предложения, пожелания, возражения?

-- 
Alexey Shabalin

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] polkit without systemd
  2014-09-01 13:02 [devel] polkit without systemd Alexey Shabalin
@ 2014-09-01 14:28 ` Денис Смирнов
  2014-09-02 12:45   ` Mikhail Efremov
  2014-09-01 16:21 ` Dmitry V. Levin
  1 sibling, 1 reply; 13+ messages in thread
From: Денис Смирнов @ 2014-09-01 14:28 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 1404 bytes --]

On Mon, Sep 01, 2014 at 05:02:42PM +0400, Alexey Shabalin wrote:

> 2) обеспечить работу logind под SysV
> - вместо прямого запуска systemd-logind запускать скрипт systemd-logind-launch:
> --------------------
> if ! mountpoint -q /sys/fs/cgroup; then
>     mount -t tmpfs -o uid=0,gid=0,mode=0755 none /sys/fs/cgroup
> fi
> if ! mountpoint -q /sys/fs/cgroup/systemd; then
>     mkdir -p /sys/fs/cgroup/systemd
>     mount -t cgroup -o nosuid,noexec,nodev,none,name=systemd systemd
> /sys/fs/cgroup/systemd
> fi
> mkdir -p /run/systemd
> exec /lib/systemd/systemd-logind
> ------------------------

Этот вариант лучше, чем что-либо патчить.

> - в этом скрипте,при монтировании  /sys/fs/cgroup,
> /sys/fs/cgroup/systemd, мы обманываем logind, как будто он работает
> под systemd. Но из этого обмана надо исключить тех, кого мы обманывать
> не хотим -  service, chkconfig
> service использует утилиту sd_booted. её лучше переписать, и научить
> использовать функцию sd_booted из libsystemd (например так
> http://git.pld-linux.org/?p=packages/systemd.git;a=blob;f=systemd_booted.c)
> Или я могу в systemd-utils положить эту утилиту systemd_booted и
> переключиться на её использование.

Этот вариант мне кажется правильнее.

> Аналогично надо поправить chkconfig.
> У кого есть какие предложения, пожелания, возражения?

-- 
С уважением, Денис

http://mithraen.ru/


[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] polkit without systemd
  2014-09-01 13:02 [devel] polkit without systemd Alexey Shabalin
  2014-09-01 14:28 ` Денис Смирнов
@ 2014-09-01 16:21 ` Dmitry V. Levin
  2014-09-01 16:45   ` Alexey Shabalin
  1 sibling, 1 reply; 13+ messages in thread
From: Dmitry V. Levin @ 2014-09-01 16:21 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 1365 bytes --]

On Mon, Sep 01, 2014 at 05:02:42PM +0400, Alexey Shabalin wrote:
> - вместо прямого запуска systemd-logind запускать скрипт systemd-logind-launch:
> --------------------
> if ! mountpoint -q /sys/fs/cgroup; then
>     mount -t tmpfs -o uid=0,gid=0,mode=0755 none /sys/fs/cgroup
> fi
> if ! mountpoint -q /sys/fs/cgroup/systemd; then
>     mkdir -p /sys/fs/cgroup/systemd
>     mount -t cgroup -o nosuid,noexec,nodev,none,name=systemd systemd
> /sys/fs/cgroup/systemd
> fi
> mkdir -p /run/systemd

Проверьте, все ли здесь правильно с правами.
Скорее всего, 0755 на /run/systemd - это неправильно.

> exec /lib/systemd/systemd-logind
> ------------------------
> 
> - в этом скрипте,при монтировании  /sys/fs/cgroup,
> /sys/fs/cgroup/systemd, мы обманываем logind, как будто он работает
> под systemd. Но из этого обмана надо исключить тех, кого мы обманывать
> не хотим -  service, chkconfig
> service использует утилиту sd_booted. её лучше переписать, и научить
> использовать функцию sd_booted из libsystemd (например так
> http://git.pld-linux.org/?p=packages/systemd.git;a=blob;f=systemd_booted.c)

После коммита
http://cgit.freedesktop.org/systemd/systemd/commit/?id=v198-67-g66e4118
в функции sd_booted из libsystemd осталась только одна проверка:
test -d /run/systemd/system/
Наверное, мы тоже можем так сделать.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] polkit without systemd
  2014-09-01 16:21 ` Dmitry V. Levin
@ 2014-09-01 16:45   ` Alexey Shabalin
  2014-09-01 17:08     ` Dmitry V. Levin
  0 siblings, 1 reply; 13+ messages in thread
From: Alexey Shabalin @ 2014-09-01 16:45 UTC (permalink / raw)
  To: ALT Linux Team development discussions

1 сентября 2014 г., 20:21 пользователь Dmitry V. Levin
<ldv@altlinux.org> написал:
> On Mon, Sep 01, 2014 at 05:02:42PM +0400, Alexey Shabalin wrote:
>> - вместо прямого запуска systemd-logind запускать скрипт systemd-logind-launch:
>> --------------------
>> if ! mountpoint -q /sys/fs/cgroup; then
>>     mount -t tmpfs -o uid=0,gid=0,mode=0755 none /sys/fs/cgroup
>> fi
>> if ! mountpoint -q /sys/fs/cgroup/systemd; then
>>     mkdir -p /sys/fs/cgroup/systemd
>>     mount -t cgroup -o nosuid,noexec,nodev,none,name=systemd systemd
>> /sys/fs/cgroup/systemd
>> fi
>> mkdir -p /run/systemd
>
> Проверьте, все ли здесь правильно с правами.
> Скорее всего, 0755 на /run/systemd - это неправильно.

# mount| grep /sys/fs/cgroup
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup
(rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
cgroup on /sys/fs/cgroup/cpuset type cgroup
(rw,nosuid,nodev,noexec,relatime,cpuset)

в mount-setup.c это определено так:

        { "tmpfs",      "/sys/fs/cgroup",            "tmpfs",
"mode=755", MS_NOSUID|MS_NOEXEC|MS_NODEV|MS_STRICTATIME,
          NULL,       MNT_FATAL|MNT_IN_CONTAINER },

>> exec /lib/systemd/systemd-logind
>> ------------------------
>>
>> - в этом скрипте,при монтировании  /sys/fs/cgroup,
>> /sys/fs/cgroup/systemd, мы обманываем logind, как будто он работает
>> под systemd. Но из этого обмана надо исключить тех, кого мы обманывать
>> не хотим -  service, chkconfig
>> service использует утилиту sd_booted. её лучше переписать, и научить
>> использовать функцию sd_booted из libsystemd (например так
>> http://git.pld-linux.org/?p=packages/systemd.git;a=blob;f=systemd_booted.c)
>
> После коммита
> http://cgit.freedesktop.org/systemd/systemd/commit/?id=v198-67-g66e4118
> в функции sd_booted из libsystemd осталась только одна проверка:
> test -d /run/systemd/system/
> Наверное, мы тоже можем так сделать.
В общем я это и имел ввиду, проверять только /run/systemd/system.
Только вдруг это изменится в будущем, поэтому и предложил линковаться
с libsystemd.



-- 
Alexey Shabalin

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] polkit without systemd
  2014-09-01 16:45   ` Alexey Shabalin
@ 2014-09-01 17:08     ` Dmitry V. Levin
  2014-09-01 17:20       ` Alexey Shabalin
  0 siblings, 1 reply; 13+ messages in thread
From: Dmitry V. Levin @ 2014-09-01 17:08 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 2443 bytes --]

On Mon, Sep 01, 2014 at 08:45:51PM +0400, Alexey Shabalin wrote:
> 1 сентября 2014 г., 20:21 пользователь Dmitry V. Levin
> <ldv@altlinux.org> написал:
> > On Mon, Sep 01, 2014 at 05:02:42PM +0400, Alexey Shabalin wrote:
> >> - вместо прямого запуска systemd-logind запускать скрипт systemd-logind-launch:
> >> --------------------
> >> if ! mountpoint -q /sys/fs/cgroup; then
> >>     mount -t tmpfs -o uid=0,gid=0,mode=0755 none /sys/fs/cgroup
> >> fi
> >> if ! mountpoint -q /sys/fs/cgroup/systemd; then
> >>     mkdir -p /sys/fs/cgroup/systemd
> >>     mount -t cgroup -o nosuid,noexec,nodev,none,name=systemd systemd
> >> /sys/fs/cgroup/systemd
> >> fi
> >> mkdir -p /run/systemd
> >
> > Проверьте, все ли здесь правильно с правами.
> > Скорее всего, 0755 на /run/systemd - это неправильно.
> 
> # mount| grep /sys/fs/cgroup
> tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
> cgroup on /sys/fs/cgroup/systemd type cgroup
> (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
> cgroup on /sys/fs/cgroup/cpuset type cgroup
> (rw,nosuid,nodev,noexec,relatime,cpuset)
> 
> в mount-setup.c это определено так:
> 
>         { "tmpfs",      "/sys/fs/cgroup",            "tmpfs",
> "mode=755", MS_NOSUID|MS_NOEXEC|MS_NODEV|MS_STRICTATIME,
>           NULL,       MNT_FATAL|MNT_IN_CONTAINER },

А какие права должны быть у /run/systemd?

> >> exec /lib/systemd/systemd-logind
> >> ------------------------
> >>
> >> - в этом скрипте,при монтировании  /sys/fs/cgroup,
> >> /sys/fs/cgroup/systemd, мы обманываем logind, как будто он работает
> >> под systemd. Но из этого обмана надо исключить тех, кого мы обманывать
> >> не хотим -  service, chkconfig
> >> service использует утилиту sd_booted. её лучше переписать, и научить
> >> использовать функцию sd_booted из libsystemd (например так
> >> http://git.pld-linux.org/?p=packages/systemd.git;a=blob;f=systemd_booted.c)
> >
> > После коммита
> > http://cgit.freedesktop.org/systemd/systemd/commit/?id=v198-67-g66e4118
> > в функции sd_booted из libsystemd осталась только одна проверка:
> > test -d /run/systemd/system/
> > Наверное, мы тоже можем так сделать.
> В общем я это и имел ввиду, проверять только /run/systemd/system.
> Только вдруг это изменится в будущем, поэтому и предложил линковаться
> с libsystemd.

Не хочу линковаться с libsystemd. :)


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] polkit without systemd
  2014-09-01 17:08     ` Dmitry V. Levin
@ 2014-09-01 17:20       ` Alexey Shabalin
  0 siblings, 0 replies; 13+ messages in thread
From: Alexey Shabalin @ 2014-09-01 17:20 UTC (permalink / raw)
  To: ALT Linux Team development discussions

1 сентября 2014 г., 21:08 пользователь Dmitry V. Levin
<ldv@altlinux.org> написал:
> On Mon, Sep 01, 2014 at 08:45:51PM +0400, Alexey Shabalin wrote:
>> 1 сентября 2014 г., 20:21 пользователь Dmitry V. Levin
>> <ldv@altlinux.org> написал:
>> > On Mon, Sep 01, 2014 at 05:02:42PM +0400, Alexey Shabalin wrote:
>> >> - вместо прямого запуска systemd-logind запускать скрипт systemd-logind-launch:
>> >> --------------------
>> >> if ! mountpoint -q /sys/fs/cgroup; then
>> >>     mount -t tmpfs -o uid=0,gid=0,mode=0755 none /sys/fs/cgroup
>> >> fi
>> >> if ! mountpoint -q /sys/fs/cgroup/systemd; then
>> >>     mkdir -p /sys/fs/cgroup/systemd
>> >>     mount -t cgroup -o nosuid,noexec,nodev,none,name=systemd systemd
>> >> /sys/fs/cgroup/systemd
>> >> fi
>> >> mkdir -p /run/systemd
>> >
>> > Проверьте, все ли здесь правильно с правами.
>> > Скорее всего, 0755 на /run/systemd - это неправильно.
>>
>> # mount| grep /sys/fs/cgroup
>> tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
>> cgroup on /sys/fs/cgroup/systemd type cgroup
>> (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
>> cgroup on /sys/fs/cgroup/cpuset type cgroup
>> (rw,nosuid,nodev,noexec,relatime,cpuset)
>>
>> в mount-setup.c это определено так:
>>
>>         { "tmpfs",      "/sys/fs/cgroup",            "tmpfs",
>> "mode=755", MS_NOSUID|MS_NOEXEC|MS_NODEV|MS_STRICTATIME,
>>           NULL,       MNT_FATAL|MNT_IN_CONTAINER },
>
> А какие права должны быть у /run/systemd?
Извиняюсь, не то прислал.
вот в mount-setup.c:

        /* Create a few directories we always want around, Note that
         * sd_booted() checks for /run/systemd/system, so this mkdir
         * really needs to stay for good, otherwise software that
         * copied sd-daemon.c into their sources will misdetect
         * systemd. */
        mkdir_label("/run/systemd", 0755);
        mkdir_label("/run/systemd/system", 0755);
        mkdir_label("/run/systemd/inaccessible", 0000);

а что смущает? какие должны быть?

>> >> exec /lib/systemd/systemd-logind
>> >> ------------------------
>> >>
>> >> - в этом скрипте,при монтировании  /sys/fs/cgroup,
>> >> /sys/fs/cgroup/systemd, мы обманываем logind, как будто он работает
>> >> под systemd. Но из этого обмана надо исключить тех, кого мы обманывать
>> >> не хотим -  service, chkconfig
>> >> service использует утилиту sd_booted. её лучше переписать, и научить
>> >> использовать функцию sd_booted из libsystemd (например так
>> >> http://git.pld-linux.org/?p=packages/systemd.git;a=blob;f=systemd_booted.c)
>> >
>> > После коммита
>> > http://cgit.freedesktop.org/systemd/systemd/commit/?id=v198-67-g66e4118
>> > в функции sd_booted из libsystemd осталась только одна проверка:
>> > test -d /run/systemd/system/
>> > Наверное, мы тоже можем так сделать.
>> В общем я это и имел ввиду, проверять только /run/systemd/system.
>> Только вдруг это изменится в будущем, поэтому и предложил линковаться
>> с libsystemd.
>
> Не хочу линковаться с libsystemd. :)
>
>
> --
> ldv
>
> _______________________________________________
> Devel mailing list
> Devel@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel



-- 
Alexey Shabalin

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] polkit without systemd
  2014-09-01 14:28 ` Денис Смирнов
@ 2014-09-02 12:45   ` Mikhail Efremov
  2014-09-19 14:51     ` Mikhail Efremov
  0 siblings, 1 reply; 13+ messages in thread
From: Mikhail Efremov @ 2014-09-02 12:45 UTC (permalink / raw)
  To: devel

On Mon, 1 Sep 2014 18:28:16 +0400 Денис Смирнов wrote:
> On Mon, Sep 01, 2014 at 05:02:42PM +0400, Alexey Shabalin wrote:
> 
> > 2) обеспечить работу logind под SysV
> > - вместо прямого запуска systemd-logind запускать скрипт systemd-logind-launch:
> > --------------------
> > if ! mountpoint -q /sys/fs/cgroup; then
> >     mount -t tmpfs -o uid=0,gid=0,mode=0755 none /sys/fs/cgroup
> > fi
> > if ! mountpoint -q /sys/fs/cgroup/systemd; then
> >     mkdir -p /sys/fs/cgroup/systemd
> >     mount -t cgroup -o nosuid,noexec,nodev,none,name=systemd systemd
> > /sys/fs/cgroup/systemd
> > fi
> > mkdir -p /run/systemd
> > exec /lib/systemd/systemd-logind
> > ------------------------
> 
> Этот вариант лучше, чем что-либо патчить.

Да, CK в любом случае мертв, насколько я понимаю.
Я так и не собрался посмотреть подробнее, но при беглом взгляде похоже,
что может сработать.
Правда нет гарантии, что апстрим systemd все не сломает. Хотя commit
message из 79d860fe78ff9e53fe3150fb55a8a8b03c4f6470, например, внушает
надежду:
It is possible to build systemd without logind or run logind without systemd
init.

Тут хоть признается, что запуск logind без systemd возможен.

-- 
WBR, Mikhail Efremov


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] polkit without systemd
  2014-09-02 12:45   ` Mikhail Efremov
@ 2014-09-19 14:51     ` Mikhail Efremov
  2014-09-19 19:15       ` Alexey Shabalin
  0 siblings, 1 reply; 13+ messages in thread
From: Mikhail Efremov @ 2014-09-19 14:51 UTC (permalink / raw)
  To: devel

On Tue, 2 Sep 2014 16:45:07 +0400 Mikhail Efremov wrote:
> On Mon, 1 Sep 2014 18:28:16 +0400 Денис Смирнов wrote:
> > On Mon, Sep 01, 2014 at 05:02:42PM +0400, Alexey Shabalin wrote:
> > 
> > > 2) обеспечить работу logind под SysV
> > > - вместо прямого запуска systemd-logind запускать скрипт systemd-logind-launch:
> > > --------------------
> > > if ! mountpoint -q /sys/fs/cgroup; then
> > >     mount -t tmpfs -o uid=0,gid=0,mode=0755 none /sys/fs/cgroup
> > > fi
> > > if ! mountpoint -q /sys/fs/cgroup/systemd; then
> > >     mkdir -p /sys/fs/cgroup/systemd
> > >     mount -t cgroup -o nosuid,noexec,nodev,none,name=systemd systemd
> > > /sys/fs/cgroup/systemd
> > > fi
> > > mkdir -p /run/systemd
> > > exec /lib/systemd/systemd-logind
> > > ------------------------
> > 
> > Этот вариант лучше, чем что-либо патчить.
> 
> Да, CK в любом случае мертв, насколько я понимаю.
> Я так и не собрался посмотреть подробнее, но при беглом взгляде похоже,
> что может сработать.

Нет, при более внимательном рассмотрении там все плохо.
В systemd-logind слишком много завязано на сам systemd.
Не найдя dbus-интерфейс systemd он даже не запустится, да и потом он
обращается к systemd при логине пользователя для манипуляций с cgroups,
а также для выполнения shutdown/sleep. Надо подумать, можно ли с этим
что-то сделать.
К тому же, не знаю как с остальными демонами из systemd-services, но
для logind dbus-активация - плохая идея. Как минимум в Xfce есть патчи,
проверяющие наличие dbus-интерфейса logind. Если при этом logind вдруг
запустится, но выполнять все, что от него ожидается, не сможет (тот же
shutdown/sleep), то это просто перестанет работать.
Предлагаю убрать dbus-активацию для logind и вернуть проверку на
запущенный logind в pam_systemd, а если удастся-таки как-то заставить
его работать без systemd - написать для него честный инит-скрипт.

-- 
WBR, Mikhail Efremov


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] polkit without systemd
  2014-09-19 14:51     ` Mikhail Efremov
@ 2014-09-19 19:15       ` Alexey Shabalin
  2014-09-22  9:40         ` Mikhail Efremov
  0 siblings, 1 reply; 13+ messages in thread
From: Alexey Shabalin @ 2014-09-19 19:15 UTC (permalink / raw)
  To: ALT Linux Team development discussions

19 сентября 2014 г., 18:51 пользователь Mikhail Efremov
<sem@altlinux.ru> написал:
> On Tue, 2 Sep 2014 16:45:07 +0400 Mikhail Efremov wrote:
>> On Mon, 1 Sep 2014 18:28:16 +0400 Денис Смирнов wrote:
>> > On Mon, Sep 01, 2014 at 05:02:42PM +0400, Alexey Shabalin wrote:
>> >
>> > > 2) обеспечить работу logind под SysV
>> > > - вместо прямого запуска systemd-logind запускать скрипт systemd-logind-launch:
>> > > --------------------
>> > > if ! mountpoint -q /sys/fs/cgroup; then
>> > >     mount -t tmpfs -o uid=0,gid=0,mode=0755 none /sys/fs/cgroup
>> > > fi
>> > > if ! mountpoint -q /sys/fs/cgroup/systemd; then
>> > >     mkdir -p /sys/fs/cgroup/systemd
>> > >     mount -t cgroup -o nosuid,noexec,nodev,none,name=systemd systemd
>> > > /sys/fs/cgroup/systemd
>> > > fi
>> > > mkdir -p /run/systemd
>> > > exec /lib/systemd/systemd-logind
>> > > ------------------------
>> >
>> > Этот вариант лучше, чем что-либо патчить.
>>
>> Да, CK в любом случае мертв, насколько я понимаю.
>> Я так и не собрался посмотреть подробнее, но при беглом взгляде похоже,
>> что может сработать.
>
> Нет, при более внимательном рассмотрении там все плохо.
> В systemd-logind слишком много завязано на сам systemd.
> Не найдя dbus-интерфейс systemd он даже не запустится, да и потом он
> обращается к systemd при логине пользователя для манипуляций с cgroups,
> а также для выполнения shutdown/sleep. Надо подумать, можно ли с этим
> что-то сделать.
> К тому же, не знаю как с остальными демонами из systemd-services, но
> для logind dbus-активация - плохая идея. Как минимум в Xfce есть патчи,
> проверяющие наличие dbus-интерфейса logind. Если при этом logind вдруг
> запустится, но выполнять все, что от него ожидается, не сможет (тот же
> shutdown/sleep), то это просто перестанет работать.
> Предлагаю убрать dbus-активацию для logind и вернуть проверку на
> запущенный logind в pam_systemd, а если удастся-таки как-то заставить
> его работать без systemd - написать для него честный инит-скрипт.

Да, у меня эксперименты тоже не удались. Просторы интернета подсказали
про systemd-shim. Будем пробовать или откатывать все изменения?


-- 
Alexey Shabalin

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] polkit without systemd
  2014-09-19 19:15       ` Alexey Shabalin
@ 2014-09-22  9:40         ` Mikhail Efremov
  2014-09-23 10:08           ` Mikhail Efremov
  0 siblings, 1 reply; 13+ messages in thread
From: Mikhail Efremov @ 2014-09-22  9:40 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Fri, 19 Sep 2014 23:15:22 +0400 Alexey Shabalin wrote:
> 19 сентября 2014 г., 18:51 пользователь Mikhail Efremov
> > Нет, при более внимательном рассмотрении там все плохо.
> > В systemd-logind слишком много завязано на сам systemd.
> > Не найдя dbus-интерфейс systemd он даже не запустится, да и потом он
> > обращается к systemd при логине пользователя для манипуляций с
> > cgroups, а также для выполнения shutdown/sleep. Надо подумать,
> > можно ли с этим что-то сделать.
> > К тому же, не знаю как с остальными демонами из systemd-services, но
> > для logind dbus-активация - плохая идея. Как минимум в Xfce есть
> > патчи, проверяющие наличие dbus-интерфейса logind. Если при этом
> > logind вдруг запустится, но выполнять все, что от него ожидается,
> > не сможет (тот же shutdown/sleep), то это просто перестанет
> > работать. Предлагаю убрать dbus-активацию для logind и вернуть
> > проверку на запущенный logind в pam_systemd, а если удастся-таки
> > как-то заставить его работать без systemd - написать для него
> > честный инит-скрипт.
> 
> Да, у меня эксперименты тоже не удались. Просторы интернета подсказали
> про systemd-shim. Будем пробовать или откатывать все изменения?

Можно попробовать. Только я бы, прежде чем этот systemd-shim собирать,
почитал бы его хорошенько. Надо понять, насколько хорошо он
прикидывается systemd. Потенциально возможны проблемы, если кто-то
обнаружит dbus-интерфейс systemd и захочет от systemd-shim чего-то
такого, чего тот не умеет.

-- 
WBR, Mikhail Efremov


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] polkit without systemd
  2014-09-22  9:40         ` Mikhail Efremov
@ 2014-09-23 10:08           ` Mikhail Efremov
  2014-09-26  8:08             ` Mikhail Efremov
  0 siblings, 1 reply; 13+ messages in thread
From: Mikhail Efremov @ 2014-09-23 10:08 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Mon, 22 Sep 2014 13:40:28 +0400 Mikhail Efremov wrote:
> On Fri, 19 Sep 2014 23:15:22 +0400 Alexey Shabalin wrote:
> > 19 сентября 2014 г., 18:51 пользователь Mikhail Efremov
> > > Нет, при более внимательном рассмотрении там все плохо.
> > > В systemd-logind слишком много завязано на сам systemd.
> > > Не найдя dbus-интерфейс systemd он даже не запустится, да и потом
> > > он обращается к systemd при логине пользователя для манипуляций с
> > > cgroups, а также для выполнения shutdown/sleep. Надо подумать,
> > > можно ли с этим что-то сделать.
> > > К тому же, не знаю как с остальными демонами из systemd-services,
> > > но для logind dbus-активация - плохая идея. Как минимум в Xfce
> > > есть патчи, проверяющие наличие dbus-интерфейса logind. Если при
> > > этом logind вдруг запустится, но выполнять все, что от него
> > > ожидается, не сможет (тот же shutdown/sleep), то это просто
> > > перестанет работать. Предлагаю убрать dbus-активацию для logind и
> > > вернуть проверку на запущенный logind в pam_systemd, а если
> > > удастся-таки как-то заставить его работать без systemd - написать
> > > для него честный инит-скрипт.
> > 
> > Да, у меня эксперименты тоже не удались. Просторы интернета
> > подсказали про systemd-shim. Будем пробовать или откатывать все
> > изменения?
> 
> Можно попробовать. Только я бы, прежде чем этот systemd-shim собирать,
> почитал бы его хорошенько. Надо понять, насколько хорошо он
> прикидывается systemd. Потенциально возможны проблемы, если кто-то
> обнаружит dbus-интерфейс systemd и захочет от systemd-shim чего-то
> такого, чего тот не умеет.

Я, собственно, начал его неспешно собирать. Как соберу - расскажу что
получилось.

-- 
WBR, Mikhail Efremov


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] polkit without systemd
  2014-09-23 10:08           ` Mikhail Efremov
@ 2014-09-26  8:08             ` Mikhail Efremov
  2014-10-02 17:27               ` Mikhail Efremov
  0 siblings, 1 reply; 13+ messages in thread
From: Mikhail Efremov @ 2014-09-26  8:08 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Tue, 23 Sep 2014 14:08:24 +0400 Mikhail Efremov wrote:
> On Mon, 22 Sep 2014 13:40:28 +0400 Mikhail Efremov wrote:
> > On Fri, 19 Sep 2014 23:15:22 +0400 Alexey Shabalin wrote:
> > > 19 сентября 2014 г., 18:51 пользователь Mikhail Efremov
> > > > Нет, при более внимательном рассмотрении там все плохо.
> > > > В systemd-logind слишком много завязано на сам systemd.
> > > > Не найдя dbus-интерфейс systemd он даже не запустится, да и
> > > > потом он обращается к systemd при логине пользователя для
> > > > манипуляций с cgroups, а также для выполнения shutdown/sleep.
> > > > Надо подумать, можно ли с этим что-то сделать.
> > > > К тому же, не знаю как с остальными демонами из
> > > > systemd-services, но для logind dbus-активация - плохая идея.
> > > > Как минимум в Xfce есть патчи, проверяющие наличие
> > > > dbus-интерфейса logind. Если при этом logind вдруг запустится,
> > > > но выполнять все, что от него ожидается, не сможет (тот же
> > > > shutdown/sleep), то это просто перестанет работать. Предлагаю
> > > > убрать dbus-активацию для logind и вернуть проверку на
> > > > запущенный logind в pam_systemd, а если удастся-таки как-то
> > > > заставить его работать без systemd - написать для него честный
> > > > инит-скрипт.
> > > 
> > > Да, у меня эксперименты тоже не удались. Просторы интернета
> > > подсказали про systemd-shim. Будем пробовать или откатывать все
> > > изменения?
> > 
> > Можно попробовать. Только я бы, прежде чем этот systemd-shim
> > собирать, почитал бы его хорошенько. Надо понять, насколько хорошо
> > он прикидывается systemd. Потенциально возможны проблемы, если
> > кто-то обнаружит dbus-интерфейс systemd и захочет от systemd-shim
> > чего-то такого, чего тот не умеет.
> 
> Я, собственно, начал его неспешно собирать. Как соберу - расскажу что
> получилось.

У меня это даже как-то заработало. В Сизиф пока не отправляю, там надо
еще немного попилить.
Но в целом выглядит вполне рабочим вариантом.

-- 
WBR, Mikhail Efremov


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [devel] polkit without systemd
  2014-09-26  8:08             ` Mikhail Efremov
@ 2014-10-02 17:27               ` Mikhail Efremov
  0 siblings, 0 replies; 13+ messages in thread
From: Mikhail Efremov @ 2014-10-02 17:27 UTC (permalink / raw)
  To: devel

On Fri, 26 Sep 2014 12:08:30 +0400 Mikhail Efremov wrote:
> On Tue, 23 Sep 2014 14:08:24 +0400 Mikhail Efremov wrote:
> > On Mon, 22 Sep 2014 13:40:28 +0400 Mikhail Efremov wrote:
> > > On Fri, 19 Sep 2014 23:15:22 +0400 Alexey Shabalin wrote:
> > > > 19 сентября 2014 г., 18:51 пользователь Mikhail Efremov
> > > > > Нет, при более внимательном рассмотрении там все плохо.
> > > > > В systemd-logind слишком много завязано на сам systemd.
> > > > > Не найдя dbus-интерфейс systemd он даже не запустится, да и
> > > > > потом он обращается к systemd при логине пользователя для
> > > > > манипуляций с cgroups, а также для выполнения shutdown/sleep.
> > > > > Надо подумать, можно ли с этим что-то сделать.
> > > > > К тому же, не знаю как с остальными демонами из
> > > > > systemd-services, но для logind dbus-активация - плохая идея.
> > > > > Как минимум в Xfce есть патчи, проверяющие наличие
> > > > > dbus-интерфейса logind. Если при этом logind вдруг запустится,
> > > > > но выполнять все, что от него ожидается, не сможет (тот же
> > > > > shutdown/sleep), то это просто перестанет работать. Предлагаю
> > > > > убрать dbus-активацию для logind и вернуть проверку на
> > > > > запущенный logind в pam_systemd, а если удастся-таки как-то
> > > > > заставить его работать без systemd - написать для него честный
> > > > > инит-скрипт.
> > > > 
> > > > Да, у меня эксперименты тоже не удались. Просторы интернета
> > > > подсказали про systemd-shim. Будем пробовать или откатывать все
> > > > изменения?
> > > 
> > > Можно попробовать. Только я бы, прежде чем этот systemd-shim
> > > собирать, почитал бы его хорошенько. Надо понять, насколько хорошо
> > > он прикидывается systemd. Потенциально возможны проблемы, если
> > > кто-то обнаружит dbus-интерфейс systemd и захочет от systemd-shim
> > > чего-то такого, чего тот не умеет.
> > 
> > Я, собственно, начал его неспешно собирать. Как соберу - расскажу что
> > получилось.
> 
> У меня это даже как-то заработало. В Сизиф пока не отправляю, там надо
> еще немного попилить.
> Но в целом выглядит вполне рабочим вариантом.

Отправил в Сизиф как есть, желающие могут поиграться. Нормально оно не
работает, но кое-что позволяет.
В частности не рекомендую использовать на Xfce, как минимум
shutdown/sleep отвалятся (как я и говорил dbus-активация для
systemd-logind - зло).

- systemd-machined должен быть запущен (собственно важно существование
  каталога /run/systemd/machines/).
- systemd-inhibit хорошо бы паковать вместе с systemd-logind.
- основная проблема: loginctl show-user показывает, что State=opening.
  Из-за этого polkit много чего не разрешает. Видимо logind ждет, что
  systemd-shim сделает что-то, чего тот не умеет. Закрытие сеанса тоже
  не работает.

-- 
WBR, Mikhail Efremov


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2014-10-02 17:27 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-01 13:02 [devel] polkit without systemd Alexey Shabalin
2014-09-01 14:28 ` Денис Смирнов
2014-09-02 12:45   ` Mikhail Efremov
2014-09-19 14:51     ` Mikhail Efremov
2014-09-19 19:15       ` Alexey Shabalin
2014-09-22  9:40         ` Mikhail Efremov
2014-09-23 10:08           ` Mikhail Efremov
2014-09-26  8:08             ` Mikhail Efremov
2014-10-02 17:27               ` Mikhail Efremov
2014-09-01 16:21 ` Dmitry V. Levin
2014-09-01 16:45   ` Alexey Shabalin
2014-09-01 17:08     ` Dmitry V. Levin
2014-09-01 17:20       ` Alexey Shabalin

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git