
최근 모잇지 서비스 운영중 우분투 서버에서 MongoDB 서비스를 재시작하려 했으나, 아래와 같이 실패하는 상황을 겪었다.
$ sudo systemctl status mongod
× mongod.service - MongoDB Database Server
Loaded: loaded (/usr/lib/systemd/system/mongod.service; disabled; preset: enabled)
Active: failed (Result: exit-code) since Fri 2025-09-19 04:28:34 UTC; 16s ago
...
Sep 19 04:28:34 ip-10-0-0-68 mongod[1252]: {"msg":"Failed to unlink socket file","attr":{"path":"/tmp/mongodb-27017.sock","error":"Operation not permitted"}}
로그를 확인해보니 MongoDB가 /tmp/mongodb-27017.sock 파일을 삭제하지 못해 시작이 실패했다. 이는 주로 파일 권한 문제 또는 이전에 종료되지 않은 MongoDB 프로세스 때문에 발생하는 문제였다.
mongod.service 상태 확인:sudo systemctl status mongod
결과에서 Failed with result 'exit-code'와 함께 Failed to unlink socket file 에러가 발생했다.
sudo tail -50 /var/log/mongodb/mongod.log
Failed to unlink socket fileFatal assertion위 로그를 통해 MongoDB 소켓 파일 삭제 실패가 직접적인 원인임을 확인했다.
ls -l /tmp/mongodb-27017.sock
파일이 존재하고 소유권 또는 권한 문제로 MongoDB가 접근하지 못함을 확인했다.
sudo rm /tmp/mongodb-27017.sock
삭제 후 MongoDB가 새 소켓 파일을 생성할 수 있게 되었다.
sudo systemctl start mongod
sudo systemctl status mongod
/tmp 폴더 권한이 올바른지 확인하였다.ls -ld /tmp
# 권한: drwxrwxrwt
이번 문제는 MongoDB가 소켓 파일을 삭제하지 못해 발생한 서비스 시작 실패였다.
핵심 해결 방법은 다음과 같다.
/tmp/mongodb-27017.sock 파일 삭제/tmp 권한 확인 (필요 시 chmod 1777 /tmp)이 과정을 통해 MongoDB를 정상적으로 기동시킬 수 있었다.
이번 사례를 통해, MongoDB 서비스 문제는 권한 및 소켓 파일 문제에서 시작되는 경우가 많음을 알 수 있었다.
운영 환경에서 MongoDB가 갑자기 시작되지 않을 때, 먼저 /tmp와 소켓 파일을 확인하는 습관이 필요하다고 느꼈다.