MacOS下Supervisor运行指令权限问题
在MacOS下使用Supervisor来运行命令时,会出现与在终端中直接运行结果不一致的问题
比如之前在运行mcp-proxy时,在终端运行非常正常,但改到Supervisor后,mcp-proxy可以正常启动,但配置的mcp server始终无法正常运行
这个问题就是Supervisor运行的command环境与直接在终端运行时不一样导致的
首先获取环境变量
env | grep -E "(NODE|NPM|NVM|PYTHON|PATH)" | sort例如返回内容的内容如下:
INFOPATH=/opt/homebrew/share/info:PATH=/opt/homebrew/opt/node@22/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin然后将返回的PATH复制到Supervisor配置文件的environment里
[program:test]command='/Users/test/go/bin/mcp-proxy' --config '/Users/test/go/config/mcp-proxy.config.json'directory=/Users/test/go/bin ; 工作目录autostart=true ; 随 Supervisor 启动startsecs=10 ; 延迟启动60秒autorestart=true ; 自动重启startretries=3 ; 启动失败重试次数environment= HOME="/Users/test",PATH="/opt/homebrew/opt/node@22/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin"user=test ; 运行用户(可选)最后更新Supervisor配置
supervisorctl update这样就可以正确使用终端的环境来运行指令