Как остановить завершение работы x11vnc при выходе из системы?

Как остановить завершение работы x11vnc при выходе из системы?

При загрузке у меня есть

sudo x11vnc -xkb -noxrecord -forever -noxfixes -noxdamage -display :0 -auth /var/run/lightdm/root/:0 -usepw

запустить через init.d

Он работает и показывает мне приглашение на вход, когда я использую VNC-клиент, однако, если я выхожу из системы, VNC-сервер отключается, и мне приходится подключаться по SSH, чтобы перезапустить его. Я нашел и изменил скрипт, который, по моему мнению, должен работать:

#!/bin/bash

if pgrep "x11vnc"
then
    echo "Running"
else
    echo "Stopped"
    sudo x11vnc -xkb -noxrecord -forever -noxfixes -noxdamage -display :0 -auth /var/run/lightdm/root/:0 -usepw
fi

и он это делает (он находится в /usr/local/bin/testvnc, если я его запускаю, однако мое задание cron:

* * * * * /usr/local/bin/testvnc

Он сообщает, что был запущен cat var/log/syslog | grep vnc, однако VNC НЕ запускается.

решение1

У меня та же проблема на Kubuntu 16.04.1, но ваш скрипт подсказал мне идею решения.

Создайте служебный файл для systemd:

sudo nano /etc/systemd/system/x11vnc.service

это мой x11vnc.serviceфайл:

[Unit]
Description=Start x11vnc at startup.
After=multi-user.target display-manager.service

[Service]
Type=simple
ExecStart=/bin/bash -c '/usr/bin/x11vnc -auth /var/run/sddm/* -noxdamage -norepeat -rfbauth /home/x11vnc/passwd -display :0 -rfbport 5900 -shared -o /var/log/x11vnc.log'
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

Установить разрешения на выполнение:

sudo chmod u+x /etc/systemd/system/x11vnc.service

Перезагрузите и активируйте скрипт на systemd:

sudo systemctl daemon-reload
sudo systemctl enable x11vnc.service

Важный:Обязательно не используйте параметры -loopи -foreverв x11vncкоманде, иначе x11vnc не сможет завершить процесс после выхода из системы, а systemd не сможет перезапустить службу.

Связанный контент