검색결과 리스트
글
앞서 wiringPi 라이브러리를 활용하여 라즈베리파이에서 실행할 수 있는 프로그램을 간단히 코딩해 보았는데 그렇다면 이렇게 개발한 프로그램을 부팅할 때 마다 자동으로 실행시켜 주려면 어떻게 해야할까? 이 문제는 의외로 코드 몇줄 추가하는 것 만으로 간단히 해결할 수 있다. 리눅스 환경에서는 프로그램을 자동으로 실행시켜 줄 수 있는 다양한 방법을 지원하므로 각기 알맞는 방법을 알아보고 사용해보자.
1. rc.local
자동실행 방법 중에 간단하면서도 효과적인 방법 중 하나로서 여기에 명령을 적어주게 되면 라즈베리파이가 부팅시에 자동으로 root 권한을 가지고 프로그램을 실행시켜준다. 주의해야할 점으로는 시스템과 관련된 명령을 입력할 경우에 rc.local의 실행이 더 빠르기 때문에 실행되지 않을 수 있으며 프로그램에 에러가 있는 상태에서 명령어 뒤에 & 문자를 입력하지 않을 경우에는 부팅이 완료되지 않을 수 있으므로 유의해야 한다.
$ sudo nano /etc/rc.local |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #!/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 /home/pi/Desktop/Work/usbSerial & exit 0 | cs |
파일을 열면 다음과 같은 내용이 보일 것이다. 여기서 추가하고 싶은 명령어를 'fi' 와 'exit 0' 사이에 입력하면 된다. 앞서 언급했던것 처럼 rc.local은 root권한을 가지기때문에 sudo 나 su를 입력할 필요가 없다.(여기서 sudo가 쓰이는 경우는 다른 사용자로 프로그램을 실행시킬 경우에만 사용됨) 따라서 실행할 프로그램의 경로만 적어준 뒤에 &기호를 추가하면 자동실행 등록이 완료된다. &는 등록한 프로그램과 시스템 부팅이 별개의 프로세스로 진행되도록 분리해주는 역할을 한다.
2. LXDE
LXDE란 리눅스 환경에서 사용할 수 있는 오픈소스 데스크탑 환경을 의미하며 쉽게 말해 라즈비안에서 startx 명령어를 통해 나타나는 GUI환경을 의미한다. 이 방법은 라즈베리파이가 부팅되면서 xwindow 실행시 자동으로 실행하도록 설정해주는 방식이며 앞서 언급한 rc.local 자동실행보다 한 박자 느리게 실행된다. 설정 방법은 매우 간단하며 다음과 같은 명령어를 통해 파일을 읽어온 뒤 @문자를 붙인상태에서 실행할 프로그램의 경로를 지정해주면 된다. 경로를 설정할 때는 밑의 @xscreensaver 라인 전에 적어야 한다.
$ sudo nano /etc/xdg/lxsession/LXDE-pi/autostart |
1 2 3 | @lxpanel --profile LXDE-pi @pcmanfm --desktop --profile LXDE-pi @xscreensaver -no-splash | cs |
3. 스크립트 파일
보통 특정 프로그램을 가동할때 많이 사용하는 방식이며 부팅시에 스크립트가 자동으로 실행되는 폴더인 profile.d 경로에 원하는 파일을 만들어서 사용할 수 있다. 활용 방법은 2가지가 있으며 직접 /etc/profile.d 경로에 들어가 스크립트 파일을 넣어 자동으로 실행하게 하거나 profile 파일을 편집하여 스크립트 파일을 직접 실행시키게 할 수 있다.
$ sudo nano /etc/profile |
해당 파일의 맨 마지막 라인에 .을 찍고 한칸 띄어쓰기 한 후 실행할 스크립트 파일의 경로를 적어주면 된다.
ex) . /home/pi/Desktop/Work/usbSerial.sh
'Electronic > RaspberryPi' 카테고리의 다른 글
스마트홈 구축하기2 (13) | 2016.03.13 |
---|---|
스마트홈 구축하기1 (0) | 2016.03.04 |
라즈베리파이로 문자열 송신하기(+파일 입출력) (7) | 2016.01.11 |
아두이노, 라즈베리파이 기초 교재 (0) | 2016.01.08 |
라즈베리파이 아두이노 시리얼 통신하기 (3) | 2016.01.07 |
RECENT COMMENT