안녕하세요 이번에 다룰내용은.
라즈베리파이 부팅후 자동실행입니다.
그러나 많이들알려져있는 .profile 등의 방법도 있지만.
잘못하면 부팅이 켜지지않는 무서운 문제점을 가지고 있죠.
제가 이번에 말씀드릴 방법은
crontab 을 이용한 방법입니다.
crontab = 리눅스내 특정 시간때 프로그램을 자동으로 실행 시켜주는 라이브러리? 라고 보시면됩니다. 정확히는 다를수 있습니다. ( 친구귀 통해 들음)
먼저
$sudo crontab -e
를 입력하고 창내용을 봅시다.
굳이 주절주절 설명할 필요 없이 아래처럼
입력합니다.
@reboot = 부팅 후 실행될 명령어
/usr/local/bin/pigpiod = 원래 파이썬 터미널 스크립트에서는 $sudo pipgiod 로 썻습니다. (pigpio 서보모터 지터링 제거 컨트롤 데몬)
&& (다음에 실행할 스크립트 구분)
/usr/bin/python = 터미널에서 쓰는 $python과 같은말.
/home/pi/Desktop/gi/gi/nogui.py = 님들이 python nogui.py 라고 쓰는건 cd 로 폴더 이동해서 쓰는거고 저거는 절대경로 입니다.
위 쓴것만 보면 대충 감이 오실텐데 그러면
/usr/local/bin 뭐시기 이건 어케 아는거냐?
먼저 제가 치는거는 터미널창에서
sudo pigpiod 를 치고
cd 로 폴더에 이동 후, python nogui.py 로 실행했었습니다.
우리가 알아야 할건 3가지 입니다.
1. pigpiod 의 경로
2. python 의 경로
3. nogui.py 의 경로.
3번 같은경우는 절대경로라 대충 탐색기 찾아보시면 아실꺼고
1,2가 문제지요?
방법은 간단합니다.
그냥 터미널창에
$ which [ 궁금한 명령어 ]
만치면 아래에 경로를 알려줍니다.
그래서 저 경로를 우리가 터미널에치는 sudo pigpiod , python 대신에 넣어주면 됩니다.
그후 crontab -e 에 제가 위에쓴것같이 샘플을 써주시고
컨트롤+X , Y 를 눌러서 저장해줍니다.
그러고 라즈베리파이를 재부팅 합니다.
그후 어떻게어떻게 실행될텐데..
위 스크립트가 제대로 실행되고 있나 궁금하시면
위에 $ /usr/bin/python /home/Desktop/gi/gi/nogui.py 를 그대로 터미널에 쳐봅니다.
저같은경우 처음에는 스크립트가 실행되다가 멈췄는데 그이유는
스크립트 안에 mp3 경로를 상대경로로 지정해놔서 에러가 났었습니다.
그래서 꼭 스크립트 안의 파일 경로도 절대경로로 수정해주셔야합니다.
그다음. 잘실행은 돼.
실행은 잘돼 !!!
근데 실행이 잘되긴되는지... 아니면 실행되고있는애를 끄고싶은데..
이건 어떻게 하는지 궁금하실 수 있습니다.
그방법입니다.
먼저 여러분이 아셔야 할 커맨드 코드입니다.
$ps -ef = 현재 실행중인 프로세스들을 봅니다.
위를 치시면. 현재 실행중인 프로세스들이 보이십니다.
그곳에서 CMD부분에 내가 입력한 경로를 찾습니다.
그 다음 root 옆에 번호를 기억합니다. 그다음
$sudo kill 434
$sudo kill 441
을 입력하시면
두가지 프로세스(백그라운드에서 실행중인 파이썬 스크립트, 라이브러리 데몬) 를 끌 수 있습니다.
위와같은 방법으로 .local/profile? 이나 시스템 부팅에 연관된 파일에 접근없이
안전하게 부팅후 sudo 스크립트, 파이썬 스크립트를 실행할 수 있습니다.
도움이 되셨다면 댓글한번만 !
부탁드리겠습니다. 감사합니다!
'IT관련 정보' 카테고리의 다른 글
unity has stopped working 에러 유니티 아바타 버전 2018.4.20f1 에러 (2) | 2021.05.11 |
---|---|
[S/W 문제해결 기본] 1일차 - View 파이썬 코드 (0) | 2021.04.02 |
[2장] 라즈베리파이4 얼굴추적 카메라 완성 (0) | 2020.11.04 |
초보자용 )python 윈도우 conda기본 셋팅하기 (0) | 2020.09.12 |
vnc viewer 에러 the connection was refused by the computer 뜰때 (1) | 2020.06.23 |
댓글