최근 간단한 자동화를 위해 playwright
로 자동화 코드를 만들어 구름 서버에 올려 매일 한번씩 실행되게 cron
을 이용했다.
그런데 귀신같이 직접 실행하면 잘되던 코드가 cron
에서는 실행이 안됐다.
디버깅이 너무 어려웠다. 평상시라면 그냥 터미널만 봐도 되는데, 1분마다 자동 실행되길 기다리며 로그 파일을 쳐다보는게 어려웠다.
우선 파일 전체를 try문으로 감싸니 import에서 오류가 발생한 것을 발견했다.
혹시나 싶어
import sys
print(sys.executable)
코드를 실행 시켜 로그를 보니 시스템 경로의 파이썬으로 실행되고 있었다...
crontab 실행 유저 선택
위 링크를 참조해 설정 파일에 이렇게 추가해줬다. 나의 경우에는 root 유저로 실행하도록 하니 해결
0 0 * * * root python /workspace/test/index.py >> /workspace/test/cron.log