Как настроить запуск x11vnc при загрузке с помощью lightdm?

Создайте сценарий оболочки, который выводит пароль, и сохраните его где-нибудь, например, /home/user/getpass.sh. Затем запустите это:

SUDO_ASKPASS=/home/user/getpass.sh sudo -A timeout 4 strace -p 2829 -f -e trace=write -s 9999
0
07.06.2021, 17:04
1 ответ

Это можно сделать, добавив службу systemd для запуска сервера x11vnc. After=LightDM запущен. Убедитесь, что служба запущена под пользователем lightdm, чтобы не возникали надоедливые ошибки XAuthority No protocol specified.

/etc/systemd/system/x11vnc@.service:

[Unit]
Description=Remote desktop service (VNC)
After=display-manager.service

[Service]
Type=simple
User=lightdm
ExecStart=/usr/bin/x11vnc -display %i                      
Restart=always
RestartSec=3

[Install]
WantedBy=graphical.target

After=display-manager.serviceсообщает systemd, что диспетчер дисплея (LightDM )должен быть запущен, прежде чем эта служба может быть запущена.

Type=simpleговорит, что процесс не -разветвляется, команда под ExecStartпродолжает работать в течение всего срока службы VNC-сервера.

User=lightdmговорит, что процесс под ExecStartдолжен запускаться пользователем lightdm, системным пользователем, целью которого является запуск X-клиентов на время запроса на вход в LightDM. Этот пользователь владеет X-сервером, поэтому, чтобы приложения запускались в приглашении входа в систему, вам нужно запускать их от имени этого пользователя.

ExecStart=/usr/bin/x11vnc -display %i— это команда, которую нужно запустить, когда эта служба активирована, она говорит о запуске x11vncна дисплее %i, что относится ко всему, что следует после символа «@» при запуске службы.

Restart=alwaysговорит, что всякий раз, когда служба не запускается, попробуйте еще раз.

RestartSec=3просит подождать 3 секунды при каждой повторной попытке.

WantedBy=graphical.targetговорит запускать службу всякий раз, когда systemd запускает графическую систему (устаревший уровень запуска 5 ).

Чтобы загрузить юнит (заставьте systemd «увидеть» его ), выполните команду

# systemctl daemon-reload

Чтобы включить его, (запустите его при загрузке ), выполните команду

# systemctl enable x11vnc@<your-$DISPLAY-here>

где <your-$DISPLAY-here>— X-дисплей, которому вы хотите предоставить доступ к VNC (обычно:0)
Для его запуска выполните команду

# systemctl start x11vnc@<your-$DISPLAY-here>

То же самое о <your-$DISPLAY-here>.

Обратите внимание, что вы можете запускать несколько независимых сервисов в одном и том же файле модуля, передавая разные дисплеи после «@». Например, вы можете запустить несколько серверов VNC на X-дисплеях :0, :1и :2, на портах 5900, 5901и 5902с x11vnc@:0, x11vnc@:1и x11vnc@:2.

3
28.07.2021, 11:26

Теги

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