1

私はジャガーノートプッシュサーバーを使用しています。プロダクションモードでredisとジャガーノートを起動する方法原因I

 juggernaut

また

redis-server will keep on showing me log etc.

ruby on rails3を使っています。

編集

これらの2つのガイドに従って、本番サーバーでジャガーノートredisをセットアップしました

端末コマンド。

現在、両方のサーバーがスムーズに稼働しているようです。しかし、どうすればアクセスできますか

     :8080/application.js for juggernaut. 

私は試した

   my_ip:8080/application.js but nothing. 

ホスティングには Linode を使用しています。

EDIT2

redisサーバーを停止/開始しようとすると、次のような出力が得られます:

  Starting/Stopping redis-server: redis-server.

しかし、ジャガーノートに同じことをしているときは何もありません。スクリーンショットを確認します。

ここに画像の説明を入力

編集

juggernaut のログが表示されません。redis のログはありますが、juggernaut のログはありません

ここに画像の説明を入力

編集

  1. /etc/init.d/juggernaut ファイルに対する実行可能ファイルのアクセス許可 -- はい

        -rwxr-xr-x 1 fizzy fizzy 1310 Sep 19 11:06 juggernaut
    
  2. PIDFILE=/var/run/juggernaut.pid' が定義されています。それは存在しますか? - - いいえ

  3. 「開始」部分では、「chown juggernaut:juggernaut」を実行します。ユーザー juggernaut は存在​​し、グループ juggernaut のメンバーですか? - はいはい

      cat /etc/group
          redis:x:1002:
          juggernaut:x:113:
    
      groups juggernaut
          juggernaut : juggernaut
    

編集

     fizzy@li136-198:~$ sudo ls -l /usr/bin/juggernaut 
              ls: cannot access /usr/bin/juggernaut: No such file or directory
     fizzy@li136-198:~$ sudo ls -l /usr/local/bin/juggernaut 
            lrwxrwxrwx 1 root root 40 Sep 20 02:48 /usr/local/bin/juggernaut -> ../lib/node_modules/juggernaut/server.js

変えてみた

        DAEMON=/usr/bin/juggernaut

        DAEMON=/usr/local/bin/juggernaut

その後、ジャガーノートを再起動してみました

         sudo /etc/init.d/juggernaut start

サーバーは起動しましたが、バックグラウンド プロセス/サービスとしてではありません。

編集

デバッグモードでスクリプトを実行します。つまり、上部のシバン行を変更して -x を追加します。

    #! /bin/bash -x

出力は次のとおりです。

   + PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
   + DAEMON=/usr/bin/juggernaut
   + NAME=Juggernaut2
   + DESC=Juggernaut2
   + PIDFILE=/var/run/juggernaut.pid
   + test -x /usr/bin/juggernaut
   + exit 0

編集

私のジャガーノートが別の場所にインストールされているように見えるので、私のジャガーノートのパスを変更します。ここに出力があります

    fizzy@li136-198:~$ sudo /etc/init.d/juggernaut start
    + PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    + DAEMON=/usr/local/bin/juggernaut
    + NAME=Juggernaut2
    + DESC=Juggernaut2
    + PIDFILE=/var/run/juggernaut.pid
    + test -x /usr/local/bin/juggernaut
    + set -e
    + case "$1" in
    + echo -n 'Starting Juggernaut2: '
    Starting Juggernaut2: + touch /var/run/juggernaut.pid
    + chown juggernaut:juggernaut /var/run/juggernaut.pid
    + start-stop-daemon --start --quiet --umask 007 --pidfile /var/run/juggernaut.pid --chuid juggernaut:juggernaut --exec /usr/local/bin/juggernaut
    20 Sep 06:41:16 - Your node instance does not have root privileges. This means that the flash XML policy file will be served inline instead of on port 843. This will slow down initial connections slightly.
    20 Sep 06:41:16 - socket.io ready - accepting connections

    node.js:134
            throw e; // process.nextTick error, or 'error' event on first tick
            ^
    Error: EADDRINUSE, Address already in use
        at Server._doListen (net.js:1106:5)
        at net.js:1077:14
        at Object.lookup (dns.js:153:45)
        at Server.listen (net.js:1071:20)
        at Object.listen (/usr/local/lib/node_modules/juggernaut/lib/juggernaut/server.js:51:21)
        at Object.listen (/usr/local/lib/node_modules/juggernaut/lib/juggernaut/index.js:9:10)
        at Object.<anonymous> (/usr/local/lib/node_modules/juggernaut/server.js:21:12)
        at Module._compile (module.js:402:26)
        at Object..js (module.js:408:10)
        at Module.load (module.js:334:31)
    + echo failed
    failed
    + exit 0
4

2 に答える 2

3

Juggernaut と Redis をサービス/バックグラウンド プロセスとして開始することをお勧めします。サービスとして開始すると、ログをファイルにリダイレクトして、定期的に検査できるようになります。

起動時に自動的に開始されるサービスを作成するには、使用している OS に基づいてさまざまなことを行う必要があります。

サービスを作成した後にサービスをデフォルトのランレベルに追加して開始するか (起動時に自動的に開始されます)、手動で開始してください。

サービスをデフォルトのランレベルに追加する (Linux) も、上記の両方の Linux チュートリアルの一部です。

sudo update-rc.d -f juggernaut defaults
sudo update-rc.d -f redis-server defaults

サービスをデフォルトのランレベルに追加した後も、サービスを手動で開始する必要があります (Linux):

sudo /etc/init.d/juggernaut start
sudo /etc/init.d/redis-server start
于 2011-09-15T17:46:13.273 に答える
0

同じ問題に遭遇しました(Ubuntu 12.04 LTSを使用)。upstartを使用すると、それができました。

以下を含む「juggernaut.conf」ファイルを作成します。

start on filesystem and started networking
stop on shutdown

script
    # We found $HOME is needed. Without it, we ran into problems
    export HOME="/root"

    exec /usr/local/bin/juggernaut 2>&1 >> /var/log/juggernaut.log
end script

このファイルを (init.d ではなく) /etc/init/ に保存し、実行可能にします (chmod +x)。これで終わりです。サーバーが起動すると、Juggernaut がデーモンとして実行されます。

注: juggernaut 自体の juggernaut.log の隣に、/var/log/upstart/ にある juggernaut.log があり、upstart が juggernaut を開始しようとしたことに関する情報が書き込まれます。

上記のスクリプトは、多かれ少なかれこのブログからコピーして貼り付けました。ただし、そこに示されているスクリプトは次のように始まります。

 start on startup

起動時にファイルシステムが適切にマウントされていなかったため、これはうまくいきませんでした。そのため、juggernaut.log (読み取り専用ファイルシステムエラー) を作成する可能性はありませんでした。それを解決するためのserverfaultに関するこの投稿の功績。

于 2012-12-31T12:11:31.470 に答える