Brew услуги: где редактировать конфигурацию?

Brew службы установили этот файл plist для mysql.

~ $ brew services list
Name    Status  User      Plist
mysql56 started mh /Users/mh/Library/LaunchAgents/homebrew.mxcl.mysql56.plist

Безопасен ли этот файл для редактирования (т.е. будет brew когда-либо перезаписывать сделанные здесь изменения)? Есть ли другой способ, который я должен использовать для изменения файла?

Ответ 1

Все .plist файлы, которые поставляются с формулами, можно найти в каталоге Cellar. Например, homebrew.mxcl.mysql.plist находится в /usr/local/Cellar/mysql/5.7.14. Вы можете изменить его, и brew services будет использовать его.

В качестве альтернативы вы можете изменить /Library/LaunchDaemons/homebrew.mxcl.mysql.plist и сделать его неизменным с помощью sudo chflags uchg /Library/LaunchDaemons/homebrew.mxcl.mysql.plist. Это не позволит brew переписать или изменить файл .plist.

Ответ 2

Я (к сожалению) не знаю, какой файл вы можете редактировать, но я могу подтвердить, что редактирование чего-либо в каталоге Library/LaunchAgents будет перезаписано brew services при следующем запуске, поэтому его прямое редактирование не будет чтобы помочь.

Ответ 3

  • Скопировать /Users/mh/Library/LaunchAgents/homebrew.mxcl.mysql56.plist где-нибудь
  • внести изменения в копию plist
  • run brew services start mysql56 {path to modified copy of plist file}

Ответ 4

При установке пакета с формулой Homebrew
файл .plist находится в папке пакета
(обычно папка /usr/local/Cellar/...)

в OSX этот файл копируется/удаляется в/из

/Library/LaunchDaemons/

папка каждый раз, когда вы запускаете/останавливаете сервис с помощью Homebrew:

brew services start <the-app>
brew services stop  <the-app>

Лучше, чем "блокировать" этот файл
действует над файлом в папке вашего пакета...

этот пример для OSX/Mojave & MariaDB:
Предположим, вы хотите изменить папку данных по умолчанию
и порт TCP от 3306 до 3308

изменить

/usr/local/Cellar/mariadb/10.4.6_1/homebrew.mxcl.mariadb.plist

найдите этот раздел в XML
внести нужные изменения (выберите нужную папку):

...
<string>/usr/local/opt/mariadb/bin/mysqld_safe</string>
<string>--datadir=/DAT/mariadb</string>     
<string>--port=3308</string> 
...

затем просто остановите и перезапустите службу с помощью Homebrew
et voilá... вы можете использовать netsat для подтверждения:

netstat|grep 3308