brew 服务:在哪里编辑配置?

brew services: where to edit configuration?

Brew 服务已为 mysql 安装了此 plist 文件。

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

此文件是否可以安全编辑(即 brew 会覆盖此处所做的更改)?我应该使用另一种方法来修改文件吗?

我(不幸的是)不知道您可以编辑哪个文件,但我可以确认编辑 Library/LaunchAgents 目录中的任何内容都会被 brew services 下次启动,所以直接编辑它不会有帮助。

公式附带的所有 .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 文件。

  1. 在某处复制/Users/mh/Library/LaunchAgents/homebrew.mxcl.mysql56.plist
  2. 更改 plist 副本
  3. 运行 brew services start mysql56 {path to modified copy of plist file}

更新 2022 - 对于较新的版本:

  1. 运行 brew services start mysql56 --file=path to modified copy of plist file

当您使用 Homebrew 公式安装包时
.plist 文件放在包文件夹中
(通常是/usr/local/Cellar/...文件夹)

在OSX这个文件是copyed/deletedto/from

/Library/LaunchDaemons/

文件夹 每次使用 Homebrew start/stop 服务时:

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

比'blocking'这个文件更好
正在处理您的包文件夹中的文件...

此示例适用于 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 停止并重新启动服务
等瞧...你可以使用netsat来确认:

netstat|grep 3308 

简答:

编辑usr/local/Cellar/中的配置+公式名称/+.plist文件

NOTbrew services 列表

中守护程序旁边列出的文件中

长答案:

当您安装公式时,其 plist 文件位于 usr/local/Cellar 中以公式命名的目录中。

当您使用 brew services start 生成守护进程时,此文件会 复制 到 运行ning 用户的 Library/LaunchAgents/,例如:

对于 root,它是 Library/LaunchAgents/

普通用户 - ~/Library/LaunchAgents

这很重要,更改此文件没有意义,它只是一个副本,下次您运行服务作为该用户时将被覆盖。

但是,您可以检查此文件以查看用于此特定服务实例的配置。