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할 경우 서비스가 실행되지 않으니 이점 주의해 주세요.


 

Posted by xelloss. :