Brew 服务已为 mysql 安装了此 plist 文件。
~ $ brew services list
Name Status User Plist
mysql56 started mh /Users/mh/Library/LaunchAgents/homebrew.mxcl.mysql56.plist
此文件可以安全编辑吗(即,brew 是否会覆盖此处所做的更改)?我应该使用其他方法来修改文件吗?
公式附带的所有
.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
文件。
/Users/mh/Library/LaunchAgents/homebrew.mxcl.mysql56.plist
某处brew services start mysql56 {path to modified copy of plist file}
2022 年更新 - 对于较新版本:
brew services start mysql56 --file=path to modified copy of plist file
简短回答:
在
usr/local/Cellar/
+ 公式名称 / + .plist
文件中编辑配置
NOT 在
brew services
列表中守护进程旁边列出的文件中
长答案:
安装公式时,其
plist
文件位于 usr/local/Cellar
中,位于以公式命名的目录中。
当您使用
brew services start
生成守护进程时,该文件会被 复制 到正在运行的用户的 Library/LaunchAgents/
,例如:
对于root来说,是
Library/LaunchAgents/
对于普通用户 -
~/Library/LaunchAgents
这很重要,更改此文件没有意义,它只是一个副本,下次您以该用户身份运行该服务时将被覆盖。 但是,您可以检查此文件以查看该特定服务实例使用了哪些配置。
编辑哪个文件,但我可以确认在Library/LaunchAgents
目录中编辑的任何内容都会在下次启动时被
brew services
覆盖,所以直接编辑是行不通的来帮忙。在 OSX 中,此文件被复制到
/从中删除/库/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 停止并重新启动服务即可,等等。您可以使用
netstat
确认:
netstat | grep 3308
您可以使用以下命令找到配置文件:
brew services list
然而,
brew services start
将生成/覆盖配置文件。
原始模板文件路径会随着时间的推移而发生变化。
现在我的情况是:
/opt/homebrew/opt/...