При загрузке у меня есть
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 не сможет перезапустить службу.