4월, 2016의 게시물 표시

[Linux] Upstart로 오래 도는 프로세스 관리하기

오래 돌아야 하는 서버 또는 워커를 어떻게 관리하고 계신가요? 설마 이렇게 하고 계신가요? screen이나 tmux 안에 띄워놓고 잊어버리기 nohup으로 실행해두고 잊어버리기 프로세스가 꺼졌는지 한참동안 모르고 있다가 당황하기 시스템 재부팅 될 때마다 헬을 만나기 우분투에서 기본으로 제공되는  Upstart 를 사용하면, 시스템 부팅 시에 서비스 띄우기 다른 서비스가 시작된 후에 서비스 띄우기 프로세스가 오류로 꺼지면 자동으로 다시 띄우기 stdout/stderr를 로그 파일에 기록하기 로그 파일이 커지면 쪼개기 와 같은 기능을 어렵지 않게 사용할 수 있습니다. 설정 파일 설치하기 Upstart 서비스 설정 파일은  /etc/init/ 에 모여있습니다. 따라서  /etc/init/  디렉토리에  서비스명.conf  파일을 만들어 넣으면 됩니다. 심볼릭 링크로 설치하기 /etc/init/ 에는 시스템 서비스의 설정 파일도 모두 들어있기 때문에, 조금 더 관리를 편하게 하려면 별도의 디렉토리에 서비스 설정 파일을 모아두는 것도 좋은 선택입니다. 그러려면  /etc/init 에 심볼릭 링크를 걸어야 합니다. sudo ln -s /home/ubuntu/something.conf /etc/init/ 주의!   /etc/init/ 에 직접 들어있지 않고 심볼릭 링크로 들어있는 파일이 수정될 때는 Upstart가 변화를 감지하지 못합니다. 따라서 다음 명령어로 설정 파일을 다시 불러오게 해야 합니다. sudo initctl reload-configuration 서비스 관리 설정 파일 작성법을 알아보기 전에 서비스 관리하는 방법을 먼저 알아둡시다. 시작:  sudo start 서비스명 중단:  sudo stop 서비스명 재시작:  sudo restart 서비스명  (주의: 서비스 설정 파일을 다시 읽어오지 않습니다. 설정 파일이 바뀌었으면 stop 후 start할 것) 점잖은 재시작:  sudo