크론탭에 프로세스가 죽으면 재기동하는 쉘을 올려놨는데 왜 그런지 안돕니다.
글쓴이: smreo / 작성시간: 화, 2017/08/15 - 5:12오후
인터넷을 뒤져서 아래와 같이 했습니다.
크론탭에 등록해서 run_flask.sh가 없으면 재기동시키려 했는데 이상하게 안돌읍니다.
코멘트 처리한 test.sh는 돕니다.
특별히 권한이나 환경변수도 없는 것 같은데 왜 test는 되고 flask는 안될까요?
#!/bin/bash pid=`ps -ef | grep "run_flask.sh" | grep -v 'grep' | awk '{print $2}'` # pid=`ps -ef | grep "test.sh" | grep -v 'grep' | awk '{print $2}'` # list out 2nd field if [ -z $pid ]; then # sudo /home/hanam/test.sh sudo /home/hanam/run_flask.sh # Photolog start fi
test.sh는 아래와 같이 만들었습니다.
#!/bin/bash echo ... NOW=$(date +"%a %y.%m.%d %H:%M:%S.%3N") echo $NOW "Test.sh"
run_flask.sh는 아래와 같습니다.
#Kill flask app running already fuser -k 5000/tcp #Start new flask app cd /home/hanam/env/bin python3 /home/hanam/photolog/runserver.py
그런데 이건 안돕니다.
고수들의 답변을 부탁드리겠습니다.
수고하세요. 끝.
Forums:
실행 결과를 파일에 저장해 보세요. 아마 제대로 동작
실행 결과를 파일에 저장해 보세요. 아마 제대로 동작 하지 않았다면 에러 내용이 저장 될 겁니다.
그리고, cronjob 을 작성 할 때는 PATH 환경 변수를 정의해 주거나 또는 명령어를 full path로 작성하는 것을 권장 합니다. 님이 쉘에서 실행하는 환경과 많이 다릅니다.
마지막으로, cronjob에서 sudo를 사용하는 이유는 user cronjob 이기 때문인가요? system cronjob 이라면 그냥 root 권한으로 동작시키면 될 것 같아서 입니다.
댓글 달기