Create TOC

2017년 3월 30일

OSX/Homebrew 업그레이드

Homebrew 업그레이드는 brew upgrade로 간단히 할 수 있다. 하지만 macvim이나 vim 패키지는 lua가 기본 포함되어 있지 않아서 따로 업그레이드를 해줘야 한다. 이걸 한번에 처리하게 스크립트를 작성했다.

#!/bin/sh

brew update

macvim=`brew outdated | grep macvim | wc -l`
vim=`brew outdated | grep vim | grep -v macvim | wc -l`

if [ $macvim -ne 0 ]; then
 brew upgrade macvim --with-lua
fi

if [ $vim -ne 0 ]; then
 brew upgrade vim --with-lua
fi

others=`brew outdated | wc -l`
if [ $others -ne 0 ]; then
 brew upgrade
fi

brew cleanup

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