Python 스크립트는 터미널에서 bash 명령으로 실행되지만 cron 작업으로는 실행되지 않습니다.

Python 스크립트는 터미널에서 bash 명령으로 실행되지만 cron 작업으로는 실행되지 않습니다.

Raspberry Pi(Stretch OS)에서 Python 스크립트를 cron 작업으로 실행하려고 하는데 스크립트가 완전히 실행되지 않습니다.

crontab -e에서는 다음과 같습니다:

*/1 * * * * python /home/pi/project/myfile.py >> /home/pi/project/logerrorfile.txt

로그 파일은 아래 myfile.py 스니펫에 표시된 것처럼 텍스트 파일(예: Variable.txt)에서 변수를 가져오려고 할 때 스크립트가 실행되지 않음을 보여줍니다.

print("reading txt file for variable now") #log file prints this
text_file = open('variable.txt')
try:
    variable = text_file.readlines()
except:
    print("Error: unable to read variable from txt file") #This is not printed in the log file
print("variable read successfully from txt file") #This is also not printed in the log file

하지만 이 스크립트를 터미널에서 bash 명령으로 실행하면 원활하게 실행되고 전체 스크립트가 실행됩니다. 터미널에서 bash 명령으로는 제대로 작동하지만 cron 작업으로는 제대로 작동하지 않는 이유는 무엇입니까? 또한 cron 작업 명령에서 Python 실행 프로그램에 대한 절대 경로를 선언하려고 시도했지만 #0,30 * * * * /usr/bin/python /home/pi/project/myfile.py >> /home/pi/project/logerrorfile.txt스크립트가 여전히 cron 작업으로 실행되지 않습니다. 따라서 cron을 사용하여 텍스트 파일에서 변수를 읽는 스크립트를 실행하는 데 문제가 있는 것 같습니다. 이에 대한 조언을 주시면 감사하겠습니다.

답변1

steeldriver가 언급했듯이 해결책은 cron이 작동하도록 스크립트에서 Variable.txt 파일의 절대 경로를 선언하는 것입니다.

관련 정보