2016-09-24 6 views
1

私はMacPortsエコシステムを使用しており、rabbitmq-serverポートは本当に古いもので、もう動作しません。 Mac OS X SierraにGeneric Unix releaseを使ってrabbitmq-serverをインストールしました。できます。RabbitMQはlaunchdを使用して起動しません

/usr/local/rabbitmq_server-3.6.5/の下にRabbitMQがインストールされ、/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/[email protected] 
###### ##  /usr/local/rabbitmq_server-3.6.5/var/log/rabbitmq/[email protected] 
########## 
      Starting broker... 
completed with 6 plugins. 

私は/usr/local/etc/LaunchDaemons下に置かれているファイルcom.rabbitmq.rabbitmq-server.plistを作成して、自動的にデーモンを起動します。私は/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ファイルの内容である:私は

sudo launchctl load -w /Library/LaunchDaemons/com.rabbitmq.rabbitmq-server.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> 

私はすべてのエラーを得ることはありませんが、デーモンは」doesnのtスタート。私はplistにデバッグ情報を追加しようとしましたが、ログにエラーは表示されません。 私は何が間違っていますか?

答えて

1

まあ、それは簡単ではありませんでしたが、私はついに自分自身で解決策を見つけました。私はrabbitmq-server実行可能ファイルを実行するためにMacPortsのからを使用している

<?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> 

これは、最終的なcom.rabbitmq.rabbitmq-server.plistスクリプトです。 PATH変数を更新しました。私はアーランが実行可能なホームディレクトリを見つけることができなかったことを考え出したStandardErrorPath使用:私は得たが、実際には、このエラー:

erlexec: HOME must be set 

は、だから私はEnvironmentVariablesセクションにHOMEを追加しています。

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

関連する問題