OS/Ubuntu

[Ubuntu] Nginx.pid failed (2 no such file or directory)

Miuna3 2016. 11. 19. 21:40



Nginx 서비스가 시작되면, 서비스를 제어 할 수 있게 프로세스 id를 담당하는 것이 필요하다.


그것이 바로 Nginx.pid


그런데, 가끔 소스로 설치하거나 자신도 모르게 삭제된 경우가 있다.


이럴때 서비스를 실행하면, nginx.pid failed (2 no such file or directory) 나 nginx.pid missing 에러를 띄우고

명령어는 먹히더라도 먹통처럼 보이고 reload 나 restart를 위해 프로세스를 수동으로 죽여야 한다.


처음 필자는 pid확장자로 파일을 하나 만들어주면 되는 줄 알았다.

몇시간의 검색 끝에 찾아낸 것이 심볼릭 링크를 만들어 주어야 한다는 것이다.


해결법을 알아내었으니 이후는 쉽다.




우선 nginx.conf 에서 어디로 지정되어있는지 확인한다.




/run/nginx.pid 경로로 지정되어 있고, 이제 서비스가 실행할때 읽어오는 경로를 확인한다.


systemctl status nginx.service 나 journalctl -xe 를 실행해준다.


확인결과 필자는 /usr/local/nginx/logs/nginx.pid 에서 읽어온다.


따라서 심볼릭 링크는 아래와 같이 실행해주면 된다.



ln -s /run/nginx.pid /usr/local/nginx/logs/nginx.pid