Python을 사용하면서
uwsgi와
nginx를 사용하여 웹서버를 구축하려는 경우 uwsgi 서비스에서 다음과 같은 에러가 발생하였습니다.
'StartJob filed to start'
이와같은 에러 발생시 어떻게 해결할 수 있는지 알아보고자 합니다.
# uwsgi 서비스 동작시 에러발생
만약 서비스의 설정 파일이 /etc/init/test.conf인 경우라면 아래와 같이 이상 유무를 확인할 수 있습니다.
@ /etc/init/test.conf
init-checkconf test.conf
int-checkconf 명령어는 특정 conf 파일의 이상 유무를 확인해줍니다. 만약 이상이 없는 경우 아래와 같이 출력됩니다.
File test.conf: syntax ok
그럼에도 동작하지 않는다면? 이번에는
시스템 로그 파일을 확인해볼 필요가 있습니다.
$ cat /var/log/syslog
파일을 보면 어떤 부분에 문제가 있는지 나타내줍니다. 제 경우 해당 파일을 찾을 수 없다는 메시지를 확인할 수 있었습니다. 어디가 문제였을까요?
# 문제의 원인 발견
일단 오타가 없는지 재차 확인해봅니다. 문제는 의외로 간단할 수 있으니까요... 그럼에도 아무 이상 없어보인다면 다시 서비스 설정 파일을 확인해봅니다.
@ /etc/init/test.conf
...
env PATH=/home/username/project
chdir /home/ubuntu/project
...
여기서 env 부분의 설정이 조금 의심이 갔습니다. 가상환경인 virtualenv를 사용하지 않을꺼라 이 부분은 chdir과 동일하게 설정해줬는데 변수가 선언된 것만으로 문제가 되지 않을까 생각이 들어군요. 결국 env 부분을 제거하고 다시 시작해보았습니다.
env PATH=/home/username/project <-- 제거
다시 service를 시작했더니 아무런 문제없이 잘 동작하였습니다. 결국 불필요한 설정 부분이 포함되어 제대로 동작되지 않았었습니다. 동일한 이슈인 경우 위 방법으로 해결할 수 있을 것입니다.
* 테스트 환경
Linux Ubuntu 14.04
Python 2.7.6