시작 시 루트가 아닌 사용자로 Python 스크립트를 실행하는 방법

시작 시 루트가 아닌 사용자로 Python 스크립트를 실행하는 방법

부팅 시 디렉터리를 변경한 다음 pi 사용자(Raspberry Pi에서)로 스크립트를 실행하도록 다음 스크립트를 작성했습니다.

#!/bin/bash
echo 'raspberry' | sudo su - pi -c 'cd /home/pi/workspace/counting-objects && python3 script.py

스크립트를 실행하면 다음 오류가 발생합니다.

Traceback (most recent call last):
  File "script.py", line 23, in <module>
    from custom_module...
ImportError: No module named 'custom_module'

로그인한 동안 폴더를 수동으로 변경한 다음 콘솔에서 동일한 스크립트를 실행하면 모든 것이 예상대로 작동합니다.

디렉토리를 변경한 후 pi 사용자로 올바르게 실행되도록 bash 스크립트를 수정하는 방법을 아는 사람이 있습니까?

감사해요!

답변1

sudo쉘 스크립트를 완전히 피하고 필요하지 않으므로 폐기하고 pi사용자의 cron 테이블에 추가하십시오.

@reboot cd /home/pi/workspace/counting-objects && python3 script.py

사용자로 로그인 pi하고 편집 양식을 사용하십시오 crontab -e.

관련 정보