【问题标题】:Launchd not loading nginx on startup启动时未加载 nginx
【发布时间】:2014-12-18 18:53:14
【问题描述】:

我用自制软件安装了 NGINX,然后我得到了信息并按照说明加载了 launchd 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>                                                                                                                                                                                                                                                

【问题讨论】:

    标签: nginx plist homebrew launchd


    【解决方案1】:

    这对我有用:

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

    这样做的诀窍是 Mac OSX 不会让除“root”以外的任何东西 或“系统”级服务使用低于 1024 的端口号。

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

    【讨论】:

      【解决方案2】:

      我偶然发现了您的问题,因为我遇到了同样的问题。三件事帮助我成功了:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-04
        • 1970-01-01
        • 1970-01-01
        • 2012-06-21
        • 1970-01-01
        • 1970-01-01
        • 2020-11-05
        • 1970-01-01
        相关资源
        最近更新 更多