[devel] polkit without systemd

Mikhail Efremov sem на altlinux.ru
Пт Сен 19 18:51:28 MSK 2014


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


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