검색해보면 /etc/profile.d/bash_completion.sh 여기에 추가하면 된다고 되었는 부분이 있는데 테스트해보면 아래 경로에 추가하면 계정이 login 될때 계속 실행되는 문제가 발생합니다. (따라서 비추천 합니다.)
/etc/rc.local 파일에 추가합니다. 필요한경우 python 스크립트에서 delay를 넣도록 합니다. time.delay(초) 함수를 이용합니다.
sudo vi /etc/rc.local
아래 문장 추가함 마지막에 '&' 표시는 스크립트가 완료될때까지 기다리지 않고 자식 프로세서로 실행시킨다는 의미입니다.
python3 home/pi/server_bot.py &
소스코드
#!/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 %s\n" "$_IP" fi python3 /home/pi/server_bot.py & exit 0
실행되었는지 확인 방법
ps -e | grep python3ps -e 목록에 나타나지 않으면 실행이 안된것 입니다.
디버깅 방법
var/log/daemon.log 파일 확인Mar 31 10:45:00 raspberrypi rc.local[379]: Traceback (most recent call last): Mar 31 10:45:00 raspberrypi rc.local[379]: File "/home/pi/work/rpi1_server_bot/server_bot.py", line 9, in <module> Mar 31 10:45:00 raspberrypi rc.local[379]: import psutil Mar 31 10:45:00 raspberrypi rc.local[379]: ImportError: No module named 'psutil'
psutil 이 command line으로 직접 동작할때는 실행이 되었는데 부팅시점에는 모듈이 없다고 나오는 경우가 있습니다.
https://raspberrypi.stackexchange.com/questions/78141/python-script-fails-with-importerror-when-run-from-rc-local
psutil이 root권한으로 설치가 안되어 있던게 문제였네요 아래와 같이 재설치 하였습니다.
sudo pip3 install psutil
댓글 없음:
댓글 쓰기