如何在生产模式下运行Redis服务器和剑圣服务器

问题描述 投票:1回答:2

我正在使用剑圣推送服务器。 如何在生产模式下启动Redis和剑圣

 juggernaut

要么

redis-server will keep on showing me log etc.

我正在使用Rails 3。

编辑

我按照这两个指南在生产服务器上设置了剑圣Redis

终端命令。

似乎两台服务器现在都运行平稳。 但是我该如何访问

     :8080/application.js for juggernaut. 

我试过了

   my_ip:8080/application.js but nothing. 

对于托管,我正在使用Linode。

EDIT2

当我尝试停止/启动Redis服务器时,它会给我输出,即:

  Starting/Stopping redis-server: redis-server.

但是当我为剑圣做同样的事情时,什么也没有。 检查屏幕截图。

在此输入图像描述

编辑

我看不到主宰的任何日志。.有一个供Redis使用,但没有主宰的日志

在此输入图像描述

编辑

  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”。 用户主宰是否存在,并且它是组主宰的成员吗? - 是的是的

      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

服务器已启动,但不作为后台进程/服务。

编辑

以调试模式运行脚本,即更改顶部的shebang行以添加-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
ruby-on-rails ruby-on-rails-3 redis production-environment juggernaut
2个回答
3
投票

您可能希望将Juggernaut和Redis作为服务/后台进程启动。 作为服务启动它可以将日志重定向到一个文件,然后可以对其进行定期检查。

要创建在启动时自动启动的服务,您必须根据所使用的操作系统执行不同的操作:

确保通过将服务添加到默认运行级别(将在启动时自动启动)将其创建后启动服务,或手动启动它们。

将服务添加到默认运行级别(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

0
投票

我遇到了同样的问题(使用Ubuntu 12.04 LTS)。 使用暴发户为我做到了。

创建一个文件“ 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

将此文件保存在/ etc / init /中(不是init.d),并使其可执行(chmod + x)。 就是这样,如果服务器启动,那么Juggernaut将作为守护进程运行。

注意:在剑圣本身的juggernaut.log旁边,有一个juggernaut.log,位于/ var / log / upstart /中,其中写入有关启动新剑法的尝试的信息。

我或多或少从此Blog复制粘贴了上面的脚本。 但是,此处显示的脚本开头为:

 start on startup

这对我不起作用,因为文件系统在启动时未正确安装,因此无法创建juggernaut.log(只读文件系统错误)。 归功于serverfault上的这篇文章 ,以解决此问题。

© www.soinside.com 2019 - 2024. All rights reserved.