Systemd - Найти файл .Xauthority для использования

Я предполагаю, но это может быть то, что вам нужно:

echo "give name of directory: " 
read directory 
if [ -d "$directory" ]
then 
    echo "thanks again" 
else 
    exit 
fi 
find $directory -type f

Вы find просматривали /, корневой каталог.

2
16.09.2018, 19:01
2 ответа

Существуют более сложные версии xhost +, а именно xhost +si:localuser:root, которая добавляет в список разрешенных подключений только локального пользователя root.

Вам нужно найти, куда поместить эту команду, чтобы она запускалась при входе в систему, в зависимости от вашего дистрибутива. Найдите в /etc/X11/существующий файл, уже использующий xhost. На моем пи я нашел это в/etc/X11/Xsession.d/35x11-common_xhost-local:

if type xhost >/dev/null 2>&1; then
  xhost +si:localuser:$(id -un) || :
fi

В другой системе это было в /etc/X11/xinit/xinitrc.d/localuser.sh.

2
27.01.2020, 22:08

Добавьте это в сценарий установки:

sudo mkdir /opt/xauthorityfix
sudo chmod 777 /opt/xauthorityfix
echo "#!/bin/sh" > /opt/xauthorityfix/setxauthority.sh
echo "export XAUTHORITY=$XAUTHORITY" >> /opt/xauthorityfix/setxauthority.sh
sudo chmod 755 /opt/xauthorityfix

После этого оберните ваш скрипт Python в этот скрипт оболочки:

#!/bin/sh

source /opt/xauthorityfix/setxauthority.sh
/usr/bin/python3 /usr/sbin/test_graphic_app.py

И вместо этого пусть служба systemd запустит этот сценарий!

Просто убедитесь, что переменная среды XAUTHORITY задана при запуске сценария установки. Вы можете сделать это, не запуская его с помощью sudo или используя sudo -E.

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

0
27.01.2020, 22:08

Теги

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