Raspberry Pi가 부팅될 때마다 Python 스크립트, 앱 또는 다른 유형의 스크립트(예: Bash 스크립트)를 실행하려는 많은 이유가 있습니다. Raspberry Pi에 전원이 공급되는 즉시 작업을 수행할 준비가 되어 있어야 하는 로봇 또는 IoT 장치가 있을 수 있습니다. 또는 특정 프로그램이 항상 백그라운드에서 실행되도록 하고 모든 세션에서 수동으로 실행하고 싶지 않을 수도 있습니다.
Raspberry Pi 부팅 시 스크립트를 자동으로 시작하는 방법은 여러 가지가 있지만 가장 쉬운 방법은 특정 시간에 실행되도록 스크립트를 설정할 수 있는 스케줄링 기능인 crontab을 사용하는 것입니다.
Raspberry Pi Boot에서 스크립트를 실행하는 방법
1. 다음을 입력하여 crontab 목록을 편집합니다.
sudo를 입력하지 않고 crontab을 실행할 수 있지만 그렇게 하면 관리자 권한이 필요한 스크립트를 실행할 수 없습니다. 실제로 sudo를 사용하지 않으면 다른 crontab 목록이 표시되므로 계속 사용하거나 사용하지 않는 것을 잊지 마십시오.
2. 편집기를 요청하라는 메시지가 표시되면 nano를 선택합니다.
파일이 열립니다.
3. 파일 끝에 다음과 같은 줄을 추가합니다.
라인은 라즈베리 파이를 부팅할 때마다 실행되도록 지시하는 @reboot로 시작해야 합니다. Python 스크립트인 경우 Python 스크립트에 대한 전체 경로 다음에 python 또는 python3 인터프리터를 시작하는 명령을 입력하고 싶을 것입니다.
Bash 스크립트 또는 다른 앱인 경우 전체 경로를 입력하세요.
4. 저장하고 종료합니다. nano에서는 CTRL + X를 누르고 Y로 답하고 프롬프트가 표시되면 Enter를 누르면 됩니다.
5. Bash 스크립트인 경우 스크립트를 실행 가능하게 만드십시오. Python 인터프리터가 이미 실행 가능하기 때문에 Python 스크립트는 실행 가능하지 않아도 됩니다. 다음을 입력하여 모든 스크립트를 실행 가능하게 만들 수 있습니다.
crontab에서 스크립트를 제거하려면 sudo crontab – 다시 입력하고 해당 행을 제거하거나 주석 처리하십시오. 창 환경을 사용할 필요가 없는 프로젝트를 빌드하는 경우 sudo raspi-config를 입력한 다음 Boot Options -로 이동하여 명령줄로 부팅하도록 Raspberry Pi를 구성하여 시스템 리소스를 절약할 수 있습니다. > 데스크톱 / CLI를 클릭하고 콘솔 자동 로그인을 선택합니다.
Raspberry Pi GUI에서 스크립트 또는 앱을 자동 실행하는 방법
창 GUI 내에서 Raspberry Pi 시작 시 스크립트 또는 앱을 실행하려면 다음 단계를 따르십시오.
1. /etc/xdg/autostart/ 디렉토리에 myapp.desktop(또는 다른 .desktop)이라는 파일을 만듭니다.
2. myapp.desktop 파일에서 다음 레이아웃을 사용합니다.
Exec= 행에 명령과 매개변수를 입력합니다. 예를 들어 Chrome 브라우저에서 웹 페이지를 열려면 “chromium-browser [URL]”을 입력합니다. 앱에 sudo 권한이 필요한 경우 Exec 명령에 sudo를 넣을 수 있습니다.
터미널 창에서 스크립트를 실행하려면 “/bin/bash -c ‘MYCOMMANDS HERE; /bin/bash”‘. 예를 들어 sudo 권한이 필요한 python3 스크립트를 시작하려면 다음을 사용합니다.
그러면 스크립트가 실행되는 부팅 시 창 환경에서 터미널 창이 시작됩니다. 스크립트가 완료되면(또는 CTRL+C를 눌러 중단) 터미널 창이 프롬프트로 돌아갑니다. 스크립트 완료 시 터미널 창이 닫히도록 하려면 끝에 ;/bin/bash를 생략할 수 있습니다.
이와 같이 터미널 창에서 스크립트를 실행하면 도움이 될 수 있습니다. 왜냐하면 그것이 무한 루프의 Python 스크립트(예: 로봇의 경우)인 경우 CTRL+C를 눌러 스크립트를 쉽게 종료할 수 있기 때문입니다. 그렇지 않으면 스크립트를 종료하려면 아래에서 설명하는 프로세스를 찾아야 합니다.
스크립트 죽이기
Raspberry Pi가 부팅된 후 자동 실행 스크립트를 중지하려면 어떻게 합니까? 스크립트 실행이 이미 완료된 경우 메모리에서 사라지지만 계속해서 작업을 수행하도록 설계된 경우 작업을 검색하고 종료해야 합니다.
1. ps aux 명령을 사용하고 스크립트 이름(또는 최소한 일부 이름)을 grep 뒤에 넣어 스크립트를 검색합니다.
app.py를 스크립트 이름으로 바꿉니다. 프로세스 번호 목록이 표시됩니다.
2. sudo kill -9 명령을 사용하여 각 프로세스 번호를 종료합니다. 예를 들어,
더 많은 튜토리얼:
Raspberry Pi에서 스크린샷을 캡처하는 방법
Raspberry Pi 웹 서버를 설정하는 방법
SSD 또는 플래시 드라이브에서 Raspberry Pi 4 또는 3을 실행하는 방법
Raspberry Pi에서 사용자 지정 키보드 단축키를 만드는 방법
Raspberry Pi 4에서 에뮬레이터를 실행하는 방법
Raspberry Pi 사용자가 알아야 할 25가지 이상의 Linux 명령
Raspberry Pi로 뉴스 티커 셔츠를 만드는 방법