CODEOK.NET

Page history of 서버 프로세스를 관리하는 올바른 방법



Title: 서버 프로세스 띄우기 | edited by Youngrok Pak at 5 years, 4 months ago.

웹사이트 개발을 완료하고 서비스할 프로덕션(production) 서버에 배치(deploy)할 때 고민하게 되는 문제 중 하나가 서버에서 띄워야 하는 여러 가지 프로세스들을 어떻게 띄울 것인가 하는 문제다. 프로세스가 죽으면 다시 띄우는 것도 물론 필요하다. monit이나 supervisord, god 등은 이런 목적으로 나온 것이다(몇 가지 부가적인 목적이 더 있긴 하다). 하지만 이건 OS에 대한 이해 부족에서 나온 것이다. OS에는 이미 이런 일을 담당하는 기능이 있다. 아니 심지어 OS의 밑바탕이 되는 기본 기능이다. 본 연구에서는 왜 monit이나 supervisord, god 등이 잘못된 선택인지, 올바른 방법은 무엇인지에 대해 다룰 것이다.

running-processes

 

서버를 설치하면서 띄우게 되는 여러 가지 프로세스들, 이를테면 httpd나 mysqld, crond 등을 monit이나 supervisord로 띄우는 것을 본 적이 있는가? 왜 이런 프로세스들은 monit 같은 걸 사용하지 않을까? 이런 건 프로세스가 죽었는지 모니터링할 필요도 없고 다시 살릴 필요도 없나? 물론 그럴 리가 없다. 그런데도 monit 류를 쓰지 않는 것은 더 나은 시스템, 유닉스 계열에서는 init이라는 시스템이 있기 때문이다. 물론 init은 오래되었고 여러 가지 부족함이 있지만 이미 현대적인 리눅스는 init의 대안으로 upstart나 systemd를 사용하고 있으므로, 이 둘 중에 하나를 쓰면 된다.

 

 

Wiki at WikiNamu