VNC Сервер на Rosa Fresh
Добавлено: 07 мар 2015, 20:53
Может кому пригодиться.
Порой мне нужно что-то сделать на удаленном ПК с Rosa Fresh в уже запущенной сессии иксов.
Нашел решение и набросал для себя скрипт:
где $1, $3, $5 могут быть "--user" или "-u", "--port" или "-p", "--displey" или "-d", а $2, $4, $6 соответственно их значения. Порядок параметров значения не имеет. Значения по умолчанию: текущий пользователь, 5900 порт, дисплей 0.
Скрипт нужно запускать от имени того пользователя, от которого запущен сеанс X-ов, обычно это рут.
Должен быть установлен пакет x11vnc.
Порой мне нужно что-то сделать на удаленном ПК с Rosa Fresh в уже запущенной сессии иксов.
Нашел решение и набросал для себя скрипт:
Код: Выделить всё
cat x11vnc-start.sh
Код: Выделить всё
#!/bin/bash
PARAM=( $0 $1 $2 $3 $4 $5 $6 )
for i in 1 3 5
do
case ${PARAM[$i]} in
"--port"|"-p")
if [ "${PARAM[$i+1]}" != "" ]
then
VNCPORT="${PARAM[$i+1]}"
else
VNCPORT="5900"
VNCPORT="${PARAM[$i+1]}"
fi
;;
"--user"|"-u")
if [ "${PARAM[$i+1]}" != "" ]
then
VNCUSER="${PARAM[$i+1]}"
else
VNCUSER="$(whoami)"
fi
;;
"--displey"|"-d")
if [ "${PARAM[$i+1]}" != "" ]
then
VNCDISPLEY="${PARAM[$i+1]}"
else
VNCDISPLEY="0"
fi
;;
*)
echo ${PARAM[$i]}
if [ "${PARAM[$i]}" != "" ]
then
echo "Error in settings."
exit 1
fi
;;
esac
done
if [ "$VNCPORT" == "" ]
then
VNCPORT="5900"
fi
if [ "$VNCUSER" == "" ]
then
VNCUSER=$(whoami)
fi
if [ "$VNCDISPLEY" == "" ]
then
VNCDISPLEY="0"
fi
if [ ! -f "/home/$VNCUSER/.vnc/passwd" ]
then
CURDIR=$PWD
mkdir -p "/home/$VNCUSER/.vnc/"
cd "/home/$VNCUSER/.vnc/" && x11vnc -storepasswd
cd $CURDIR
fi
VNCAUTHFILE=$(ps wwwwaux | grep auth | grep /etc/X11/X | awk -F' ' '{print $17}')
x11vnc -dontdisconnect -display :$VNCDISPLEY -auth $VNCAUTHFILE -notruecolor -noxfixes -shared -forever -rfbport $VNCPORT -bg -rfbauth /home/$VNCUSER/.vnc/passwd
exit 0
Скрипт нужно запускать от имени того пользователя, от которого запущен сеанс X-ов, обычно это рут.
Должен быть установлен пакет x11vnc.