Create TOC

2017년 3월 26일

Raspbian/RealVNC 를 설정

Raspbian에 RealVNC가 제공된다. 항상 X를 사용하지는 않기 때문에 Virtual Mode를 설정하면 되지만, vncserver-virtuald.service를 제대로 사용하려면 RealVNC 계정을 만들어야 한다.항상 X를 사용한다면 vncserver-x11-serviced.service을 사용하면 된다.

계정을 만들지 않고 Virtual Mode를 사용할 수 있도록 설정한다.

RealVNC 설치

$ sudo apt-get install realvnc-vnc-server

RealVNC 서비스 중지

$ sudo systemctl disable vncserver-x11-serviced.service
$ sudo systemctl disable vncserver-virtuald.service

스크립트 작성

vncserver-virtuald.service를 사용하지 않고 직접 vncserver-virtual 를 사용할 경우 접속한 X 환경에서 logoff 등을 할 경우 VNC 연결이 끊어지면서 vncserver-virtual 도 종료된다.

10초마다 vncserver-virtual 가 동작 중인지 검사해서 실행시키는 스크립트를 작성한다.

스크립트는 /usr/local/bin/loop_vnc.sh로 저장한다.

#!/bin/bash
if [ -x /usr/bin/vncserver-virtual ]; then
 while [[ true ]]; do
  PS_COUNT=`ps aux | grep Xvnc | grep $USER | grep -v grep | wc --lines`
  if [ 0  == $PS_COUNT ]; then
   /usr/bin/vncserver-virtual :0
  fi
  sleep 10s
 done
fi

부팅 설정

/etc/rc.local에 아래 내용을 추가해서 부팅 할 때 스크립트를 자동으로 시작하게 설정한다. 이 때 로그인을 원하는 계정 권한으로 실행해야 하기 때문에 sudo를 사용한다.

if [ -x /usr/local/bin/loop_vnc.sh ]; then
 sudo -H -u pi /usr/local/bin/loop_vnc.sh &
fi