brew ile servisleri yönetmek

Sistemsel servisleri brew ile yönetebilirsiniz.

Eğer MySQL, PostgreSQL, Redis ve benzeri araçları kullanıyorsanız, sistem kaynaklarını tüketmemek için sürekli olarak bu servisleri açık tutmamanız iyi olur. İşletim sistemi dışında kurduğunuz, özellikle Homebrew üzerinden kurduğunuz bu servisleri yine homebrew ile gelen services aracıyla kolayca yönetebilirsiniz. Kurmak için;

brew tap homebrew/services # sonra
brew services

Karşımıza;

usage: [sudo] brew services [--help] <command> [<formula>|--all]

Small wrapper around `launchctl` for supported formulae, commands available:
   cleanup Get rid of stale services and unused plists
   list    List all services managed by `brew services`
   restart Gracefully restart service(s)
   start   Start service(s)
   stop    Stop service(s)

Options, sudo and paths:

  sudo   When run as root, operates on /Library/LaunchDaemons (run at boot!)
  Run at boot:  /Library/LaunchDaemons
  Run at login: /Users/vigo/Library/LaunchAgents

yardım ekranı gelir. Aslında bu launchctl için minik bir wrapper. Sisteme login olunduğunda ya da makine ilk açıldığında ayağa kalkacak servisleri launchctl ile yönetiyoruz. Brew bize launchctl ile uğraşmadan kolayca bu işleri yapmamızı sağlıyor:

brew services list

dediğimde bana;

Name       Status  User Plist
emacs      stopped      
lighttpd   stopped      
mysql      stopped      
nginx      stopped      
postgresql stopped      
redis      stopped      

Tabi bu listenin sağlıklı çalıması için (listede görünen) servislerin brew ile kurulmuş olması gerekiyor. (brew install nginx gibi…) Eğer mysql’i ayağa kaldırmak istersem:

brew services start mysql
==> Successfully started `mysql` (label: homebrew.mxcl.mysql)

Şimdi tekrar bakarsam;

brew services list

mysql      started vigo /Users/vigo/Library/LaunchAgents/homebrew.mxcl.mysql.plist

Durdurmak için;

brew services stop mysql

Eğer bir şekilde mysql i komple sildiniz. Silinmiş servislerin servis listesinden çıkması için;

brew services cleanup

yeterli. Tüm servisleri tek hareketle ayağa kaldırmak için;

brew services start --all

==> Successfully started `emacs` (label: homebrew.mxcl.emacs)
==> Successfully started `lighttpd` (label: homebrew.mxcl.lighttpd)
==> Successfully started `mysql` (label: homebrew.mxcl.mysql)
==> Successfully started `nginx` (label: homebrew.mxcl.nginx)
==> Successfully started `postgresql` (label: homebrew.mxcl.postgresql)
==> Successfully started `redis` (label: homebrew.mxcl.redis)

Tahmin edebileceğiniz gibi kapatmak için de;

brew services stop --all