서버 재부팅 때마다 flask 웹서버가 500에러가 발생하는 에러를 확인했다. 회사내 서버로 서버의 안정성을 위해 수요일 아침마다 서버를 재부팅 시키고 있다. 그런데 이렇게 재부팅 되고 나면 이상하게 flask 웹서버에서 에러가 발생했다.
로그를 분석해 보면 이상하게 flask 웹서버가 시작되면서 postgresql 서버에 접속하지 못하고 에러가 발생했다. 그런데 수동으로 uwsgi 서비스를 재시작 시켜보면 정상적으로 DB에 접속해서 웹서버가 정상적으로 동작했다.
Ubuntu 24.04 에 시스템을 설정하면서 처음 겪는 현상으로 Postgresql 서버 서비스가 동작하기 전에 uwsgi 서비스가 동작하면서 문제를 일으키는 것으로 추정했다. 찾아보니 Systemd 설정 파일에서 Before 와 After 를 이용해서 다른 시스템과 순서를 제어하는 방법이 있다는 것을 알게되었다. 그래서 아래와 같이 변경했다.
vim /etc/systemd/system/uwsgi.service
==== uwsgi.service ====
[Unit]
Description=uWSGI Emperor service
After=postgresql.service
........
================
After 를 이용해서 "postgresql.service" 가 동작하고 나면 이 서비스가 동작하도록 설정했다.
이 설정후 정상적으로 웹서버가 동작하는 것을 확인 했다.
뭔지 모르겠지만 Ubuntu 버전, 클라우드 종류 이런 것들에 따라서 Ubuntu 가 다양하게 변경되어 배포되는 것 같다. 그래서 이번 PC는 서버 Ubuntu 가 아닌 데스크탑 Ubuntu를 설치해서 이런 문제를 겪는 것 같다.