Python 앱을 사용하기 위해서 아래와 같은 환경을 구축하였습니다.

- uwsgi 미들웨어
- nginx 서버

systemd에 새로운 프로세스를 추가하여 uwsgi를 실행하도록 코드를 작성하였는데 uwsgi를 호출할 때 uwsgi를 찾을 수 없는 에러가 발생하는 경우 어떻게 해결할 수 있는지 알아봅니다. 


# systemd 프로세스에서 uwsgi 실행이 안되는 문제 해결하기
이때 uwsgi.sh 파일을 만들어 실행하도록 하였습니다. 아래와 같이 말이죠.

@ uwsgi.sh
uwsgi --ini myProject.ini

먼저 문제의 원인은 여러 곳에 있을 수 있습니다. 예를들어 아래와 같습니다.

1. systemd의 문법 에러인 경우
2. uwsgi를 구동하는 스크립트 파일의 권한 문제
3. uwsgi 버전이 예전 문제인 경우
4. uwsgi.sh의 쉘 스크립트에 인코딩 문제(특히 윈도우 텍스트 복사해 붙여넣은 경우)
5. uwsgi.sh의 실행 권한이 없는 경우
6. /bin/bash -c '명령어' 형태로 추가하지 않은 경우

기타 가능한 모든 방법을 사용하여 확인해 보았으나 결론은 동작하지 않았습니다. 위와 같이 가능한 모든 문제를 확인하고 해결해도 되지 않아 남아있는 선택지가 별로 없었죠.


! systemd에서 호출한 uwsgi 문제 해결 방법
나중에 검색을 통해 확인한 사실은 pip로 uwsgi를 설치한 경우 찾지 못할 수 있다는 점입니다. 즉 아래와 같이 apt-get을 사용하여 다시 uwsgi를 설치하였습니다.
apt-get install uwsgi

결론은 완벽했습니다. pip로 설치한 경우의 문제가 apt-get으로 설치했을 때 모두 해결되었습니다.

다시 결론은... 만약 위와 같이 모든 방법을 사용해도 uwsgi를 systemd 프로세스에서 호출시 되지 않는 경우 uwsgi 패키지 자체를 재설치 하는 방법이 필요할 수 있습니다.