라즈베리파이(라즈비안) 부팅 시,
프로그램 자동실행 등록하기
오늘은 많은 분들이 원격접속(ssh,tightvncserver,xming ETC…)을 이용하여 파이를 이용하실 텐데요.
매번 vncserver 명령어를 입력하지 않고, 부팅과 함께 자동으로 vncserver 가 실행될 수 있도록 라즈베리파이에 자동실행등록 법을 정리 해 봤습니다.
0. 라즈비안(리눅스) 프로그램 자동등록 실행 이란 ?
라즈비안(리눅스)에는 부팅 시, 자동등록 설정을 해주는 설정파일 등록방법과 명령어를 이용해 등록을 하는 두 가지가 존재하고 있다.
a. /etc/rc.local 환경설정 수정
위 파일 내에 실행 명령어를 추가하여 부팅 시에 실행이 될 수 있도록 설정하는 방법
b. update-rc.d 명령어
별도의 등록 스크립트를 코딩하여, 부팅 시에 등록된 프로그램이 실행 될 수 있도록 설정하는 방법
1. /etc/rc.local 환경설정 수정 등록하기
그럼 예시로 라즈비안 Remote 프로그램 중 하나인 tightvncserver 를 /etc/rc.local 파일 내에 등록하여, 자동실행이 되도록 해 보자.
pi@rasplay ~ $ sudo nano /etc/rc.local
편집기(nano,vi,vim ETC… ) 프로그램을 이용하여, ‘rc.local’ 환경설정 파일을 열면 아래와 같은 내용이 보일 것이다 이 중 추가해 주어야 하는 라인은 ‘fi’ 와 ‘exit 0’ 사이에 본인이 실행하고자 하는 프로그램 실행 명령어를 입력 후, 저장을 하고 재 부팅을 시동하여 테스트를 해 보자.
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will “exit 0” on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# Print the IP address
_IP=$(hostname -I) || true
if [ “$_IP” ]; then
printf “My IP address is %sn” “$_IP”
fi
# ADD line :
su pi -c ‘tightvncserver :1’ &
exit 0
pi@rasplay ~ $ sudo reboot
이제 모든 자동등록 절차가 마무리 되었으니, 라즈베리파이를 재 부팅해 정상 작동이 되었는지 확인을 해 보도록 하자.
2. update-rc.d 명령어로 등록하기
2-1. /etc/init.d/tightvnc script 작성
두번째로 update-rc.c 명령어를 이용해 스크립트를 코드하여 실행하는 방법에 대해 알아보자.
pi@rasplay ~ $ sudo nano /etc/init.d/tightvnc
#!/bin/sh
### BEGIN INIT INFO# Provides: tightvncserver# Required-Start: $local_fs# Required-Stop: $local_fs# Default-Start: 2 3 4 5# Default-Stop: 0 1 6# Short-Description: Start/stop tightvncserver### END INIT INFO# More details see:# http://www.penguintutor.com/linux/tightvnc### Customize this entry# Set the USER variable to the name of the user to start tightvncserver underexport USER=’pi’### End customization requiredeval cd ~$USERcase “$1” instart)su $USER -c ‘/usr/bin/tightvncserver :1’echo “Starting TightVNC server for $USER “;;stop)pkill Xtightvncecho “Tightvncserver stopped”;;*)echo “Usage: /etc/init.d/tightvncserver {start|stop}”exit 1;;esac
exit 0
위 스크립트 코드를 /etc/init.d/tightvnc 파일 내에 작성 및 저장 후 빠져나 오도록 하자
2-2. /etc/init.d/tightvnc script 실행등록
자 그럼 마지막으로 작성된 스크립드를 update-rc.d 명령어를 이용하여 부팅 시 자동실행이 되도록 등록 후 재부팅을 하여 정상적으로 등록 실행되고 있는지 확인 해 보도록 하자
pi@rasplay ~ $ sudo chown pi:pi /etc/init.d/tightvncserver pi@rasplay ~ $ sudo chmod 755 /etc/init.d/tightvnc pi@rasplay ~ $ sudo update-rc.d /etc/init.d/tightvnc defaults pi@rasplay ~ $ sudo reboot
#Tip. update-rc.d 서비스 수동실행 명령어
$ sudo /etc/init.d/tightvnc start $ sudo /etc/init.d/tightvnc stop
[참고사이트]