Как запустить безголовый X при загрузке для пользователей без полномочий root в Debian

Мое требование немного отличается от этого тем, что я хотел бы запустить оконный менеджер для каждого из двух пользователей без полномочий root. после загрузки.

Для тестирования сначала я подготавливаю следующие строки в .xinitrc и / или .xsession в домашних каталогах user2 и user3 вот так:

#!/bin/sh
exec icewm

Затем я вручную вхожу в виртуальную консоль как user2 или user3 или открываю окно xterm и набираю эту команду:

xinit -- /usr/bin/Xvfb :3 -cc 4 -screen 0 1024x768x16

Это выполняет свою работу - icewm и Xvfb запускаются за сценой.

Теперь я хочу автоматизировать вход в систему и команду xinit при загрузке. Однако ни один из следующих подходов не работает:

Либо вручную введите эти две команды как root, либо поместите их в /etc/rc.local:

[Изменить после тестирования подхода alex.d.]

Файл /home/user2/.xsession :

#!/bin/bash
export DISPLAY=localhost:3
export XAUTHORITY=$HOME/.Xauthority
exec icewm

Выполните эту команду как root:

su -l user2 -c /usr/bin/startx -- /usr/bin/Xvfb :3 &

Я получаю это:

hostname: Name or service not known
xauth: (stdin):1:  bad display name "example.com:2" in "add" command

IceWM: Can't open display: localhost:3. X must be running and $DISPLAY set.
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error
xauth: (argv):1:  bad display name "example.com:2" in "remove" command

Есть идеи? Пожалуйста!

0
задан 4 August 2017 в 18:40
2 ответа

Это мой подход к работе.

файл /etc/systemd/system/john.service:

[Unit]
Description=xinit - user "john"

[Service]
User=john
Group=john
ExecStart=/usr/bin/xinit openbox-session -- /usr/bin/Xvfb :1 -nolisten tcp
ExecStopPost=/usr/bin/killall -u john

[Install]
WantedBy=multi-user.target

файл /home/john/.config/openbox/autostart:

wine my_program.exe

Спасибо всем за помощь!

0
ответ дан 5 December 2019 в 10:23

При запуске X11 из rc.local он не запускается изнутри пользовательского сеанса (consolekit или logind), поэтому в среде что-то отсутствует. Вместо чистого xinit вам следует попытаться запустить X11 с startx, который предназначен для запуска сеанса.

0
ответ дан 5 December 2019 в 10:23

Теги

Похожие вопросы