在启动时启动不加载nginx

我用自制软件安装了NGINX,然后我得到了信息并按照说明加载了启动的plist

$ brew info nginx nginx: stable 1.6.2, devel 1.7.7, HEAD ... To load nginx: launchctl load ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist Or, if you don't want/need launchctl, you can just run: nginx 

问题是当我重新启动时,nginx不加载。

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.nginx</string> <key>RunAtLoad</key> <true/> <key>KeepAlive</key> <false/> <key>ProgramArguments</key> <array> <string>/usr/local/opt/nginx/bin/nginx</string> <string>-g</string> <string>daemon off;</string> </array> <key>WorkingDirectory</key> <string>/usr/local</string> </dict> </plist> 

这对我来说是有效的:

 sudo cp /usr/local/opt/nginx/*.plist /Library/LaunchDaemons sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.nginx.plist 

这个技巧是,Mac OSX不会让除“根”或“系统”级服务以外的其他任何东西使用低于1024的端口号。

阅读更多: http : //derickbailey.com/2014/12/27/how-to-start-nginx-on-port-80-at-mac-osx-boot-up-log-in/

我偶然发现了你的问题,因为我遇到了同样的问题。 有三件事帮助我做到了这一点:

  • 将plist文件的所有权改为root:wheelsudo chown root:wheel /usr/local/opt/nginx/*.plist
  • /Library/LaunchAgents而不是~/Library/LaunchAgents创建符号链接,因为你可能在端口80上运行nginx,这需要root权限。
  • 从plist中删除<string>-g</string><string>daemon off;</string>行(使用sudo launchctl load /Library/LaunchAgents/homebrew.mxcl.nginx.plist加载之前)

我不知道为什么这两行是无效的,但我发现尝试执行/usr/local/opt/nginx/bin/nginx -g daemon off; 添加到它,它也失败了。