Mac에서는 Homebrew라는 툴을 이용해서 MySQL, MariaDB, Redis, RabbitMQ 등을 간단히 설치하고 사용할 수 있습니다.
이 프로그램들을 백그라운드로 실행하는데 옳바른 방법은 brew services 라는 명령어를 통해서 제어하는 방법입니다.
현재 설치된 프로그램 중 데몬으로 사용 가능한 리스트는 아래의 명령어를 통해서 확인 가능합니다.
$brew services list
Name Status User Plist
mariadb started joonghyeonkim /Users/joonghyeonkim/Library/LaunchAgents/homebrew.mxcl.mariadb.plist
rabbitmq started joonghyeonkim /Users/joonghyeonkim/Library/LaunchAgents/homebrew.mxcl.rabbitmq.plist
redis stopped
제 Mac에는 MariaDB, RabbitMQ는 백그라운드로 실행 중이고, Redis는 정지된 상태이네요.
이제 Redis를 백그라운드로 실행해보겠습니다.
이때 사용하는 명령어는 brew services start redis 입니다.
$ brew services start redis
==> Successfully started `redis` (label: homebrew.mxcl.redis)
$ brew services list
Name Status User Plist
mariadb started joonghyeonkim /Users/joonghyeonkim/Library/LaunchAgents/homebrew.mxcl.mariadb.plist
rabbitmq started joonghyeonkim /Users/joonghyeonkim/Library/LaunchAgents/homebrew.mxcl.rabbitmq.plist
redis started joonghyeonkim /Users/joonghyeonkim/Library/LaunchAgents/homebrew.mxcl.redis.plist
Redis가 백그라운드에서 잘 동작하고 있음을 확인할 수 있습니다.
실제 사용할 수 있는 명령어는 아래와 같습니다.
- brew services list : 서비스 목록을 출력합니다.
- brew services start 서비스명 : 서비스를 백그라운드 실행해줍니다.
- brew services stop 서비스명 : 서비스를 종료합니다.
- brew services restart 서비스명 : 서비스를 재시작합니다.
- brew services restart --all : 모든 서비스를 재시작합니다.
* 출처 : https://github.com/Homebrew/homebrew-services
리스트 결과를 보면 Plist라는 항목이 있는데요 백그라운드로 실행할때 Mac의 환경에 맞도록 plist 파일입니다.
원본은 각 프로그램의 디렉토리에 있으며 /User/유저명/Libray/LaunchAgents/ 안에 파일을 자동으로 생성해줍니다.
이 파일들의 생성과 서비스 등록 등은 brew에서 자동으로 처리해줍니다.
굳이 plist 파일을 만들 필요도 없고 launchctl 명령어로 등록할 필요도 없습니다.
참고로 brew services로 데몬의 실행은 사실 데몬방식이 아닙니다.
그래서 Redis의 설정 중 daemonize를 yes할 경우 서비스가 실행되지 않으니 이점 주의해 주세요.