[Ubuntu] vncserver init.d script

|
 
전에 Ubuntu에서 vncserver를 사용하는 방법을 올렸다. vncserver를 설치하면 자동으로 기동 종료하는 script가 생성되지 않아 수동으로 명령어를 실행해 줘야 한다. 그래서 init.d에 넣기 위한 script를 만들었다. 아래의 script를 /etc/init.d/vncserver 파일로 생성하고  /etc/rc*.d디렉토리 안에서 링크만 걸어주면 vncserver를 Ubuntu 기동과 함게 사용할 수 있다.

#! /bin/sh

### BEGIN INIT INFO
# Provides:             vncserver
# Required-Start:       $remote_fs $syslog
# Required-Stop:        $remote_fs $syslog
# Default-Start:        2 3 4 5
# Default-Stop:         1
# Short-Description:    VNC Remote Desktop Server
### END INIT INFO

set -e

# /etc/init.d/vncserver: start and stop the VNC Remote Desktop Server daemon

. /lib/lsb/init-functions

export PATH="${PATH:+$PATH:}/usr/sbin:/sbin:/bin:/usr/bin"

case "$1" in
    start)
        log_daemon_msg "Starting VNC Remote Desktop server" "vncserver"
        if start-stop-daemon --start --quiet --oknodo --chuid matthew --exec /usr/bin/vncserver -- -geometry 1280x1024 -basehttpport 5900; then
            log_end_msg 0
        else
            log_end_msg 1
        fi
        ;;
    stop)
        log_daemon_msg "Stopping VNC Remote Desktop server" "vncserver"
        if start-stop-daemon --stop --quiet --oknodo  --name Xtightvnc; then
            log_end_msg 0
        else
            log_end_msg 1
        fi
        ;;
    restart|try-restart|reload|force-reload)
        log_daemon_msg "Restarting VNC Remote Desktop server" "vncserver"
        if start-stop-daemon --stop --quiet --oknodo  --name Xtightvnc; then
            log_end_msg 0
        else
            log_end_msg 1
        fi
        if start-stop-daemon --start --quiet --oknodo --chuid matthew --exec /usr/bin/vncserver -- -geometry 1280x1024 -basehttpport 5900; then
            log_end_msg 0
        else
            log_end_msg 1
        fi
        ;;
    status)
        PID="/home/matthew/.vnc/hingom:1.pid"
        status_of_proc -p $PID /usr/bin/Xtightvnc vncserver || status=$?
        exit $status
        ;;
    *)
        echo "Usage: /etc/init.d/vncserver {start|stop|reload|restart|force-reload|status}"
        exit 1
        ;;
esac

exit 0
And