본문 바로가기
Raspberry Pi (Linux, ubuntu)

라즈베리파이 부팅 후 터미널 동작하고 쉘 스크립트 실행하기(LXTerminal)

by 소나무기운 2022. 12. 14.
반응형

[2022/12/14] First Start.

소나무 기운 ,  전자제품 개발/생산

라즈베리파이 부팅 후 터미널 동작하고 쉘 스크립트 실행하기

특성상 라즈베리파이에 프로그램을 하게되면 전원 On시 자동으로 시작해야 하는 경우가 많아요.시작 프로그램으로 등록해야 하지요.

 

부팅시 자동으로 프로그램을 시작하도록 하는 방법은 많이 있습니다.1. ctrontab 사용하는 방법2. rc.local파일을 사용하는 방법3. .bashrc 사용4. init.d 디렉토리 사용5. SYSTEMD 사용

 

이러한 동작을 위해서 사용할 수 있도록 사용자에게 제공되는 것은 ctrontab 입니다. 

부팅후 한번, 일정시간마다 반복, 목요일마다 반복, 한달에 1일 11일 21일 만 등등의 방법으로 사용할 수 있습니다.

부팅후 일정시간 지연 후 동작 등도 가능합니다.

 

그 외의 방법은 그리 권장하는 방법은 아닌것으로 보입니다.

init.d나 systemd의 방법은 작업 순서 등 조건을 적용하여 시간의 순서를 조절할 수 있습니다. 그러한 기능이 필요할때 사용하면 좋겠습니다.

 

이 번에 소개할 방법은 기존 방법은 부팅 후 디버그 메세지도 볼수 있어 단독 기능으로만 사용하는 경우는 도움이 될 듯합니다.

부팅 후에는 프로그램이 자동실행되어 일을 처리해야합니다. 터미널을 띄우고 파일을 실행합니다.

실행상태도 바로 확인할 수 있고 동작시 디버그 메세지도 확인할 수 있습니다.

 

 

동작 개념

동작해야 하는 파일을 실행할 수 있는 쉘스크립트를 만듭니다.쉘스크립트가 실행 가능하도록 실행 권한을 적용해 줍니다.이렇게 만들어진 스크립트를 부팅 후 lxterminal을 실행시키고서 쉘스크립트가 실행 되도록 합니다.

 

 

쉘스크립트 생성

/home/pi 밑에 실험용 AutoStart폴더를 하나 만들겠습니다.

 $ mkdir AutoStart

AutoStart폴더로 이동하여 AutoStartScript.sh를 하나 만들어 봅니다.

$ cd AutoStart
$ nano AutoStartScript.sh

파일내용을 다음과 같이 저장합니다.첫번째 줄 #!bin/bash라고 적어준 후 아래 내용 추가해 줍니다.간단히 "AutoStartScript..."이라고 표시한후 HelloWorld.py를 샐행해 줍니다.read reply는 HelloWorld.py가 실행 후 LXTerminal이 닫혀 버리는 것을 방지하기 위해서 삽입합니다.

#!bin/bash
echo "AutoStartScript..."
python3 /home/pi/AutoStart/HelloWorld.py
read reply

 

작성된 스크립트를 터미널에서 실행해 봅니다.

$ sh AutoStartScript.sh

 

샘플용 파이썬 파일도 만들어 줍니다.

아래처럼 한줄만 넣어 줍니다.

print("Hello World!!! python")

 

 

스크립트 파일이 실행될 수 있도록 실행권한을 부여

ls -l 명령을 이용하여 스크립트 파일의 실행권한을 확인합니다.

부팅시 쉘 스크립트가 실행될 수 있도록 파일에 권한을 부여합니다.

$ sudo chmod +x AutoStartScript.sh

권한이 잘 변경되었는지 다시한번 확인합니다.

 

 

 

부팅시 자동으로 실행될수 있도록 스크립트 등록

여러가지 방법 중 /etc/xdg/lxsession/LXDE-pi/autostart파일 수정하여 사용하겠습니다.

$ sudo nano /etc/xdg/lxsession/LXDE-pi/autostart

맨 아래줄에 한줄을 추가해 줍니다.

lxterminal을 용하여 스크립트를 실행하게 됩니다.

@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash

lxterminal -e sh /home/pi/AutoStart/AutoStartScript.sh

 

 

 

 

동작 실험

재부팅하여 정상 동작 여부를 확인합니다.

$ sudo reboot now

정상적으로 동작 합니다.

화면이 꺼지지 않고 대기하고 있습니다.

 

 

 

 

마무리

여러기자 방법들 중 하나를 골라 사용하면 된다. 이 방법을 사용하게 된 계기는 오디오를재생하는 프로그램을 생성하여 시작 프로그램에 등록하였으나 꼭 볼륨을 줄여놓은것 처럼 소리만 나질 안아 부팅시 시작프로그램을 등록하는 여러가지 방법에 대해서 찾아보게 되었습니다.여러가지 방법이 있어서 골라서 사용하면 되지만 각각의 특성이 있으니 골라서 자신에게 맞는 방법을 찾아 사용하길 바랍니다.터미널을 띄우고 동작하는 방법이 특히 도움이 될듯 합니다.

 

 

참고문헌

 

 

 
 

 

 

틀린 부분이나 질문은 댓글 달아주세요.

즐거운 하루 보내세요. 감사합니다.

 

 

반응형

댓글