如果您修改了 Homebrew 服务的配置并需要其生效,请使用其 formula 名称重启该服务:brew services restart formula。例如,如果您安装的是该 formula,可以使用 brew services restart postgresql@16。Homebrew 会在需要时停止该服务,将其重新启动,并注册为在登录时启动。随后请检查服务列表以确认其报告的状态。
重启前,请先确认服务和配置
Homebrew 服务通过 macOS 的 launchctl 来管理后台进程。在不使用 sudo 的情况下,Homebrew 操作的是当前用户的 LaunchAgents,这些服务旨在登录时启动。使用 sudo 时,它操作的是系统的 LaunchDaemons,这些服务旨在开机启动。Homebrew 的 brew services 参考文档记录了这一区别,因此请使用最初启动该服务时相同的权限级别;在用户上下文和 root 上下文之间切换可能会导致您查看或影响到不同的服务注册。
如果您不确定 formula 名称,请列出 Homebrew 为当前用户管理的服务:
brew services list
该列表可显示服务名称、状态、用户和 plist 路径。请在重启命令中使用此处显示的 formula 名称。除非您打算重启每一个受管理的服务,否则请避免使用 --all,因为它影响的不仅仅是您修改了配置的那一个服务。参考文档中还记录了在排查故障时可使用 brew services list --debug 获取额外的 Homebrew 和 launchctl 输出。
使用 brew services restart 应用更改
在“终端”中以运行该服务的同一个 macOS 账户执行重启:
brew services restart postgresql@16
请将 postgresql@16 替换为您在服务列表中找到的 formula。带有版本的名称仅作为示例。Homebrew 对 restart 的定义是在必要时停止服务并立即启动,同时将其注册为在登录时启动(搭配 sudo 使用时则为开机启动)。这使得 restart 非常适合在运行中的服务需要重新加载配置时使用。命令参考文档列出了该行为以及可选的 --all 和 --file 标志。
切勿随意添加 sudo。只有在服务明确作为系统服务注册且您打算管理 root 级别注册时,才使用它。否则,sudo 可能会针对不同的 LaunchDaemon,导致用户级服务不受影响。如果您只是希望某个进程运行一次而不注册为在登录时启动,Homebrew 记录了 brew services run formula 命令;对于您希望保持受管理状态的服务,该命令不能代替 restart。
检查结果并排查重启失败的问题
命令执行完成后,再次检查受管理的服务列表:
brew services list
确认所需的 formula 显示为 started 状态,并检查其用户和 plist 路径。started 状态仅确认 Homebrew 报告其已启动;它并不能独立证明应用程序已接受新设置或正在响应请求。请使用应用程序自身文档记录的健康检查或通过检查更改后设置所控制的行为来验证应用程序。
如果服务未启动,请使用 --debug 运行 list 命令,并在进行进一步更改之前阅读服务自身的错误输出或日志。根据该应用程序的文档检查其配置语法、文件权限和路径。Homebrew 的 service 命令使用其服务定义来启动服务;它不会验证每个特定于应用程序的配置选项。切勿将直接编辑生成的 plist 文件作为首选修复手段:Homebrew 文档中记录的配置机制取决于您需要更改的具体设置。
当更改的内容为环境变量时
如果您的更改是针对该服务的环境变量,Homebrew 记录了一个专用的按 formula 分隔的环境文件。默认情况下,请将其放置在 ~/.homebrew/services/formula.env;如果设置了 HOMEBREW_USER_CONFIG_HOME,则该目录为 $HOMEBREW_USER_CONFIG_HOME/services。每行使用一个 KEY=value 赋值,注释行以 # 开头。然后重启服务;Homebrew 说明这些值会在下次重启时生效并在升级后继续保留。请参阅 Homebrew 参考文档中的服务环境说明。
例如,文档记录的文件格式是 KEY=value,但变量名和值必须来自该应用程序的文档。不要假定每个应用程序都接受任意环境变量,也不要在未考虑谁有权限读取该文件的情况下将机密信息粘贴到环境文件中。如果您的配置更改是应用程序配置文件而不是环境变量,请编辑该应用程序指定的具体文件位置,然后使用相同的重启命令。
可靠的执行顺序是:确认准确的 formula 和服务上下文,在该应用程序或 Homebrew 文档指定的位置编辑设置,重启该特定 formula,并同时验证 Homebrew 的状态和应用程序的行为。
来源
- Manpage.md — Homebrew