Vnc: различия между версиями
Vovan (обсуждение | вклад) |
Vovan (обсуждение | вклад) |
||
Строка 30: | Строка 30: | ||
run_x11vnc() | run_x11vnc() | ||
{ | { | ||
− | |||
x11vnc -dontdisconnect -display :0 -auth /var/run/lightdm/root/:0 -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg -rfbauth /root/.vnc/passwd && run_ok=$? | x11vnc -dontdisconnect -display :0 -auth /var/run/lightdm/root/:0 -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg -rfbauth /root/.vnc/passwd && run_ok=$? | ||
− | |||
− | |||
if [ $run_ok -eq "0" ] | if [ $run_ok -eq "0" ] | ||
then | then | ||
− | + | echo "DEBUG run_x11vnc: $(date) x11vnc RUN OK !!!" >> /var/log/boot.log | |
else | else | ||
− | + | echo "DEBUG run_x11vnc: $(date) x11vnc FAILED!!!" >> /var/log/boot.log | |
− | + | run_x11vnc | |
fi | fi | ||
} | } | ||
+ | |||
+ | rerun_x11vnc() | ||
+ | { | ||
+ | is_running=$(ps aux | grep x11vnc | grep -v grep | wc -l) | ||
+ | sleep 5s | ||
+ | if [ $is_running -ne "1" ] | ||
+ | then | ||
+ | echo "DEBUG rerun_x11vnc: $(date) vns was killed " >> /var/log/boot.log | ||
run_x11vnc | run_x11vnc | ||
+ | fi | ||
+ | rerun_x11vnc | ||
+ | } | ||
+ | |||
+ | rerun_x11vnc | ||
+ | |||
</pre> | </pre> | ||
− | это рекурсивная функция, которая будет вызывать себя на выполнения до тех пор пока команда | + | run_x11vnc --- это рекурсивная функция, которая будет вызывать себя на выполнения до тех пор пока команда |
x11vnc -dontdisconnect -display :0 -auth /var/run/lightdm/root/:0 -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg -rfbauth /root/.vnc/passwd | x11vnc -dontdisconnect -display :0 -auth /var/run/lightdm/root/:0 -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg -rfbauth /root/.vnc/passwd | ||
Строка 66: | Строка 77: | ||
проваливается с матюгами в логах при обычном старте. Поэтому такой костыль. | проваливается с матюгами в логах при обычном старте. Поэтому такой костыль. | ||
+ | |||
+ | rerun_x11vnc --- это функция, бесконечно вызывающая саму себя с задержкой в 5 секунд и проверяющая запущенный процесс с x11vnc. Если он не запущен, то дергает функцию run_x11vnc. Сделана, т.к. при отсоединении от VNC процесс завершается. |
Версия 19:44, 15 марта 2015
VNC-server ubuntu
проверено на Ubuntu 14.04.1 MATE i386
--Vovan (обсуждение) 16:15, 15 марта 2015 (UTC)
установка
sudo su aptitude install x11vnc
формирование файла с паролем
x11vnc -storepasswd
результат формирования пароля будет в файле
/root/.vnc/passwd
далее добавить до
exit 0
в файл
/etc/rc.local
код
run_x11vnc() { x11vnc -dontdisconnect -display :0 -auth /var/run/lightdm/root/:0 -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg -rfbauth /root/.vnc/passwd && run_ok=$? if [ $run_ok -eq "0" ] then echo "DEBUG run_x11vnc: $(date) x11vnc RUN OK !!!" >> /var/log/boot.log else echo "DEBUG run_x11vnc: $(date) x11vnc FAILED!!!" >> /var/log/boot.log run_x11vnc fi } rerun_x11vnc() { is_running=$(ps aux | grep x11vnc | grep -v grep | wc -l) sleep 5s if [ $is_running -ne "1" ] then echo "DEBUG rerun_x11vnc: $(date) vns was killed " >> /var/log/boot.log run_x11vnc fi rerun_x11vnc } rerun_x11vnc
run_x11vnc --- это рекурсивная функция, которая будет вызывать себя на выполнения до тех пор пока команда
x11vnc -dontdisconnect -display :0 -auth /var/run/lightdm/root/:0 -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg -rfbauth /root/.vnc/passwd
не выполнится корректно, т.е. пока в переменной
run_ok
не будет статус
0
Другими словами, на этапе старта сктипров из
/etc/rc.local
по каким-то причинам еще нет дисплея 0 у подсистемы X11. Следовательно, команда
x11vnc -dontdisconnect -display :0 -auth /var/run/lightdm/root/:0 -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg -rfbauth /root/.vnc/passwd
проваливается с матюгами в логах при обычном старте. Поэтому такой костыль.
rerun_x11vnc --- это функция, бесконечно вызывающая саму себя с задержкой в 5 секунд и проверяющая запущенный процесс с x11vnc. Если он не запущен, то дергает функцию run_x11vnc. Сделана, т.к. при отсоединении от VNC процесс завершается.