Homebrew 上的黄色服务 "started" 状态是什么意思?

What is the meaning yellow service "started" status on Homebrew?

当我尝试 brew services list 命令时,dnsmasq,nginx 状态已启动但为黄色。 php71 和 mysql 已启动且为绿色。

以前,当我的 Mysql 状态开始时,黄色 Mysql 不起作用。

现在我的 nginx 和 dnsmasq 状态已启动且为黄色,但一切正常。

什么意思已启动但状态为黄色?一切都好吗?

不幸的是,黄色表示状态 unknown。想知道为什么它说开始了。

我刚刚发现,因为 OS X 10.11.6 上的 apache 2.2 的状态也是黄色的。不知道是否真的正常工作。

这是 homebrew-services ServicesCli 代码的内容

# For backwards-compatability showing unknown state as started in yellow colour

https://github.com/Homebrew/homebrew-services/blob/6e7ea0cff515df8b5d53a6e3066e16cf5e94d03a/lib/services_cli.rb#L147:L159

编辑:更新代码参考。谢谢@SidOfc

我认为由 root 用户启动的应用程序是黄色的。如果您键入 sudo brew services list,您会看到每个由 root 用户启动的应用程序都显示为绿色,而由其他用户启动的应用程序显示为黄色。

如果您的配置可以使服务 运行 成为守护进程或非守护进程,请不要将其设为守护进程。

我在haproxy.cfg配置daemon时发现黄色状态。在我删除配置中的 daemon 并重新启动它之后(包括杀死进程,因为 brew 并不知道在 haproxy 的守护进程模式下停止哪个进程),HAProxy 显示亮绿色的“已启动”状态。我现在真的可以用 brew services stop 来阻止它了。 :-)

我刚刚在 mariadb 上遇到了这个问题,并通过 运行 brew reinstall mariadb.

解决了它

我刚刚安装了新版本的 MAMP,我怀疑 MAMP 的某些内容覆盖了与 mariadb 相关的内容。

以下步骤为我解决了这个问题:

  1. 删除服务的 postmaster.pid 文件(即 rm /usr/local/var/postgres/postmaster.pid)。

  2. 在自制程序上重新启动您的服务(即 brew services restart postgresql)。

黄色表示错误的一个原因是当您 运行 brew upgrade.

时更新了 Postgres 版本

要查看是否是这种情况,运行 tail /usr/local/var/log/postgres.log 并检查是否有类似 The data directory was initialized by PostgreSQL version 11, which is not compatible with this version 12.3

的错误

在这种情况下,我们的数据文件是 v11,但 postgres 现在是 v12,所以要使用旧版本:

mv /usr/local/var/postgres /usr/local/var/postgresql@11
brew services stop postgres
brew install postgresql@11
brew link --force postgresl@11
brew services start postgresql@11