리눅스, 라즈비안, 라즈베리파이 부팅 시 자동실행(linux auto run on boot)


펌)
라즈베리파이(라즈비안) 부팅 시, 프로그램 자동실행 등록하기
안녕하세요 산딸기마을 이장 나무꾼 입니다. 
오늘은 많은 분들이 원격접속(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 under
export USER=’pi’
### End customization required
 
eval cd ~$USER
 
case “$1″ in
  start)
    su $USER -c ‘/usr/bin/tightvncserver :1′
    echo “Starting TightVNC server for $USER “
    ;;
  stop)
    pkill Xtightvnc
    echo “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

 
[참고사이트]
http://rasplay.tistory.com/

댓글

이 블로그의 인기 게시물

4,5,6 띠 저항의 색띠를 읽는 법(띠저항 값)

수지에서 인천공항 리무진 버스 (인천공항버스정보)(2022년3월업데이트)

수지에서 김포공항 리무진 버스 ( 2022년 3월 업데이트 )