MacOS使用brew services启动minio报错未实现plist/service配置问题
报错原因
你通过第三方tap minio/stable 安装的MinIO formula,没有内置brew services要求的服务定义块,也没有在安装时部署可被Homebrew自动识别的plist服务文件,因此执行启动命令时会抛出该错误。
手动执行minio server ./data可以正常运行,是因为MinIO二进制文件本身已经被正确链接到系统PATH目录,仅缺少守护进程运行所需的注册配置,不影响单次命令启动。
解决方案
你可以根据自己的需求选择以下两种方案之一:
方案一:换用Homebrew官方源内置的MinIO包(推荐)
Homebrew官方core源收录的minio formula已经预配置了服务定义,不需要手动写配置文件,操作步骤如下:
- 卸载当前tap安装的MinIO:
brew uninstall minio/stable/minio
- (可选)移除不再使用的第三方tap:
brew untap minio/stable
- 安装官方源的MinIO:
brew install minio
- 创建固定的MinIO数据存储目录,不要使用临时相对路径,避免权限和路径识别问题:
# Intel芯片Mac执行 sudo mkdir -p /usr/local/var/minio/data sudo chown $(whoami) /usr/local/var/minio/data # Apple Silicon芯片Mac执行 sudo mkdir -p /opt/homebrew/var/minio/data sudo chown $(whoami) /opt/homebrew/var/minio/data
- 启动服务:
brew services start minio
默认情况下服务会监听9000端口作为API端口,9001端口作为控制台端口,默认账号密码均为minioadmin。
方案二:保留现有MinIO版本,手动配置服务文件
如果你需要使用当前第三方tap安装的特定版本MinIO,可以手动创建plist配置文件让brew services识别:
- 先获取MinIO二进制的绝对路径,执行以下命令记录输出结果:
Intel芯片Mac默认路径为which minio/usr/local/bin/minio,Apple Silicon芯片Mac默认路径为/opt/homebrew/bin/minio。 - 创建固定的数据存储目录和日志目录,参考方案一中的路径创建即可,必须使用绝对路径。
- 在
~/Library/LaunchAgents/路径下创建名为homebrew.mxcl.minio.plist的配置文件,内容如下,注意替换其中的二进制路径、数据目录路径、账号密码为你自己的配置:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>homebrew.mxcl.minio</string> <key>ProgramArguments</key> <array> <string>替换为你上一步拿到的minio二进制绝对路径</string> <string>server</string> <string>替换为你创建的minio数据目录绝对路径</string> <string>--console-address</string> <string>:9001</string> </array> <key>EnvironmentVariables</key> <dict> <key>MINIO_ROOT_USER</key> <string>自定义管理员账号</string> <key>MINIO_ROOT_PASSWORD</key> <string>自定义管理员密码,长度不低于8位</string> </dict> <key>RunAtLoad</key> <true/> <key>KeepAlive</key> <true/> <key>StandardOutPath</key> <string>替换为日志目录路径/minio.log</string> <key>StandardErrorPath</key> <string>替换为日志目录路径/minio_err.log</string> </dict> </plist> - 给配置文件添加正确权限,加载配置:
chmod 644 ~/Library/LaunchAgents/homebrew.mxcl.minio.plist launchctl load ~/Library/LaunchAgents/homebrew.mxcl.minio.plist
配置完成后就可以正常使用brew services start/stop/restart minio命令管理MinIO守护进程。
注意:绝对不要在守护进程配置中使用
./data这类相对路径,守护进程运行时的默认工作目录和你手动打开终端执行命令的工作目录不一致,会直接导致服务启动失败、数据写入位置错误等问题。
内容的提问来源于stack exchange,提问作者Nicolas Rouanne
相关产品推荐
相关产品推荐

