1

私は MacPorts エコシステムを使用していますが、rabbitmq-serverポートは非​​常に古く、もう機能しません。そこで、 Generic Unix releaserabbitmq-serverを使用して Mac OS X Sierra にインストールしました。できます。

RabbitMQ は以下にインストールされ/usr/local/rabbitmq_server-3.6.5/、すべての実行可能ファイルへのシンボリック リンクが下にあります/usr/local/sbin/

ls -al
total 40
drwxr-xr-x  7 root  wheel  238 Sep 24 19:50 .
drwxr-xr-x  8 root  wheel  272 Sep 24 19:30 ..
lrwxr-xr-x  1 root  wheel   55 Sep 24 19:50 rabbitmq-defaults -> /usr/local/rabbitmq_server-3.6.5/sbin/rabbitmq-defaults
lrwxr-xr-x  1 root  wheel   50 Sep 24 19:50 rabbitmq-env -> /usr/local/rabbitmq_server-3.6.5/sbin/rabbitmq-env
lrwxr-xr-x  1 root  wheel   54 Sep 24 19:50 rabbitmq-plugins -> /usr/local/rabbitmq_server-3.6.5/sbin/rabbitmq-plugins
lrwxr-xr-x  1 root  wheel   53 Sep 24 19:50 rabbitmq-server -> /usr/local/rabbitmq_server-3.6.5/sbin/rabbitmq-server
lrwxr-xr-x  1 root  wheel   49 Sep 24 19:50 rabbitmqctl -> /usr/local/rabbitmq_server-3.6.5/sbin/rabbitmqctl

RabbitMQ サーバーを実行すると、すべてが期待どおりに機能します。

sudo rabbitmq-server
Password:

          RabbitMQ 3.6.5. Copyright (C) 2007-2016 Pivotal Software, Inc.
##  ##      Licensed under the MPL.  See http://www.rabbitmq.com/
##  ##
##########  Logs: /usr/local/rabbitmq_server-3.6.5/var/log/rabbitmq/rabbit@MacBookPro.log
######  ##        /usr/local/rabbitmq_server-3.6.5/var/log/rabbitmq/rabbit@MacBookPro-sasl.log
##########
          Starting broker...
completed with 6 plugins.

デーモンを自動的に開始するために、com.rabbitmq.rabbitmq-server.plist下に配置したファイルを作成しました/usr/local/etc/LaunchDaemons。でこのファイルへのシンボリックリンクも作成しました/Library/LaunchDaemons。所有者はrootで、グループはwheelです。

ls -al
total 88
drwxr-xr-x  13 root  wheel   442 Sep 24 19:51 .
drwxr-xr-x+ 61 root  wheel  2074 Sep 23 14:33 ..
lrwxr-xr-x   1 root  wheel   103 Dec 11  2015 com.oracle.java.Helper-Tool.plist -> /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Resources/com.oracle.java.Helper-Tool.plist
lrwxr-xr-x   1 root  wheel    63 Sep 24 19:16 com.rabbitmq.rabbitmq-server.plist -> /usr/local/etc/LaunchDaemons/com.rabbitmq.rabbitmq-server.plist
lrwxr-xr-x   1 root  admin    66 Sep 12 10:04 org.freedesktop.dbus-system.plist -> /opt/local/Library/LaunchDaemons/org.freedesktop.dbus-system.plist
lrwxr-xr-x   1 root  admin    76 Sep 23 16:40 org.macports.OpenSSH.plist -> /opt/local/etc/LaunchDaemons/org.macports.OpenSSH/org.macports.OpenSSH.plist
lrwxr-xr-x   1 root  admin    76 Sep 20 20:43 org.macports.apache2.plist -> /opt/local/etc/LaunchDaemons/org.macports.apache2/org.macports.apache2.plist
lrwxr-xr-x   1 root  admin    80 Sep 13 00:46 org.macports.memcached.plist -> /opt/local/etc/LaunchDaemons/org.macports.memcached/org.macports.memcached.plist
lrwxr-xr-x   1 root  admin    90 Sep 23 16:33 org.macports.mysql56-server.plist -> /opt/local/etc/LaunchDaemons/org.macports.mysql56-server/org.macports.mysql56-server.plist
lrwxr-xr-x   1 root  admin    72 Sep 23 15:17 org.macports.redis.plist -> /opt/local/etc/LaunchDaemons/org.macports.redis/org.macports.redis.plist
lrwxr-xr-x   1 root  admin    74 Sep 23 15:19 org.macports.rsyncd.plist -> /opt/local/etc/LaunchDaemons/org.macports.rsyncd/org.macports.rsyncd.plist
lrwxr-xr-x   1 root  admin    72 Sep 12 18:00 org.macports.slapd.plist -> /opt/local/etc/LaunchDaemons/org.macports.slapd/org.macports.slapd.plist
lrwxr-xr-x   1 root  wheel    84 May 25 03:58 org.macports.supervisord.plist -> /opt/local/etc/LaunchDaemons/org.macports.supervisord/org.macports.supervisord.plist

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>KeepAlive</key>
  <true/>
  <key>Label</key>
  <string>com.rabbitmq.rabbitmq-server</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/local/sbin/rabbitmq-server</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>EnvironmentVariables</key>
  <dict>
    <key>PATH</key>
    <string>/usr/local/sbin:/usr/bin:/bin:/usr/local/bin</string>
  </dict>
</dict>
</plist>

を使用してplistファイルをロードしようとすると

sudo launchctl load -w /Library/LaunchDaemons/com.rabbitmq.rabbitmq-server.plist 

エラーは発生しませんが、デーモンが起動しません。デバッグ情報を plist に追加しようとしましたが、ログにエラーは表示されません。私は何を間違っていますか?

4

1 に答える 1

1

簡単ではありませんでしたが、ついに自分で解決策を見つけました。

これが最終的なcom.rabbitmq.rabbitmq-server.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>com.rabbitmq.rabbitmq-server</string>
  <key>ProgramArguments</key>
  <array>
    <string>/opt/local/bin/daemondo</string>
    <string>--label=rabbitmq-server</string>
    <string>--start-cmd</string>
    <string>/usr/local/sbin/rabbitmq-server</string>
    <string>-u</string>
    <string>nobody</string>
    <string>;</string>
    <string>--pid=exec</string>
  </array>
  <key>Disabled</key><true/>
  <key>RunAtLoad</key><true/>
  <key>KeepAlive</key><true/>
  <key>EnvironmentVariables</key>
  <dict>
    <key>HOME</key>
    <string>/usr/local/rabbitmq_server-3.6.5</string>
    <key>PATH</key>
    <string>/usr/local/sbin:/usr/bin:/bin:/usr/local/bin:/opt/local/bin:/opt/local/sbin:/usr/local/rabbitmq_server-3.6.5/sbin</string>
  </dict>
  <key>StandardOutPath</key>
  <string>/var/log/rabbit-launchd.log</string>
  <key>StandardErrorPath</key>
  <string>/var/log/rabbit-launchd-error.log</string>
</dict>
</plist>

daemondo実行可能ファイルを実行するために MacPorts から使用しましたrabbitmq-serverPATH変数を更新しました。を使用するStandardErrorPathと、ErLang が実行可能なホーム ディレクトリを見つけられないことがわかりました。実際、次のエラーが発生しました。

erlexec: HOME must be set

だから私はセクションに追加HOMEしましたEnvironmentVariables

MacPorts でリレーし、Homebrew を使用しない場合は、このスクリプトを使用launchdして、汎用 Unix リリースを使用してインストールする RabbitMQ サーバーを実行できます。

于 2016-09-25T00:45:35.383 に答える