리눅스 서버를 사용할 경우 예기치 못한 서버 재시작을 해야할 경우가 많습니다. 이때 서버에 등록된 서비스가 자동으로 실행되지 않아 그 때마다 접속하여 서비스를 시작하려면 매우 번거롭죠. 자동으로 서비스를 시작할 수 있다면 참 편리하겠죠? 방법을 알아봅니다!
! 자동으로 서비스 시작하기
여러 이유로 서버가 다운 될 수 있습니다. 해결은 역시 재시작이겠죠!! 이 경우 매 번 수동으로 작업한다?? 물론 그래도 되겠지만 만약
자동으로 서비스를 실행해주면 매우 편리하겠죠. 아래는 이처럼 원하는 서비스를 자동으로 실행해주는 방법에 대하여 간략히 알아봅니다.
(개인적으로도 사실 조금 귀찮아서 지금까지 하지 못했었지만 더 이상은 늦추면 안되겠다는 생각에 최근 자동 스크립트를 등록하였습니다.)일단 구동할 서비스를 정해야겠죠. 저는 mongod 서비스를 자동으로 실행하고자 합니다.
[ 참고사항 ]가장 잘 알려진 update-rc.d 명령어를 사용하여 자동 스크립트를 등록하려고 하였습니다. 아래와 같이 말이죠.
> update-rc.d mongod defaults
하지만 계속해서 Not found 에러가 발생하였습니다. 이 외에도 서비스가 등록되지 않았다... 스크립트를 찾을 수 없다 등등 에러가 발생하는군요... 이것저것 찾다보니
Ubuntu15.10 이 후 버전의 경우 아래와 같이 systemctl 방법을 사용할 수 있다고 합니다. 그래서 아래는
systemctl을 사용한 방법을 알아봅니다.
방법은 간단합니다. 아래와 같이 서비스명과 enable을 함께 사용하면 됩니다. 다만 mongod 뒤에 .service를 함께 사용했습니다.
> sudo systemctl enable mongod.service
systemctl을 사용하여 start, stop은 많이 사용했지만
enable을 사용하여 자동으로 실행한다는 생각은 하지 못했었습니다. 하지만 이제는 쉽게 할 수 있겠죠.
이제 mongod가 자동 실행되도록 등록 완료되었습니다. 이 후 서버 재시작시 자동으로 mongod 서비스가 시작되게 됩니다.
@ 반대로 자동 서비스 해제하기, disable반대로 자동으로 등록된 서비스를 해제할 수 있습니다. 이 경우 disable을 사용합니다.
> sudo systemctl disable mongod.service
기존에 등록된 서비스가 해제되어 재시작시 동작하지 않도록 변경됩니다.
여기까지 자동으로 서비스를 실행하는 방법에 대하여 알아보았습니다. 생각보다 매우 간단합니다.
! 마치면서
서버가 재구동될 경우 재시작해야 할 부분은 서비스 하나만은 아닐 수 있습니다.
서비스를 여러개를 등록해야 하거나 그 외의 작업들이 필요할 수도 있겠죠. 이런 경우에는 스크립트 파일을 하나 만들고 이를 실행하는 방법이 가장 효과적인 방법일 수 있겠습니다. 이 후에 해당 방법을 대하여 포스팅 하도록 하겠습니다.