Как запустить сервер Redis и сервер Juggernaut в производственном режиме - PullRequest
1 голос
/ 15 сентября 2011

Я использую Джаггернаут Пуш-сервер.Как запустить redis и juggernaut в производственном режиме, потому что я

 juggernaut

или

redis-server will keep on showing me log etc.

Я использую ruby ​​на рельсах 3.

EDIT

Я следовал этим двум руководствам, чтобы настроить Джаггернаут и Redis на производственном сервере

Terminal commands.

Похоже, обасерверы работают без сбоев.Но как я могу получить доступ

     :8080/application.js for juggernaut. 

Я пытался

   my_ip:8080/application.js but nothing. 

Для хостинга я использую Linode.

EDIT2

Когда я пытаюсь остановить / запустить сервер Redis, он выдает мне вывод, например:

  Starting/Stopping redis-server: redis-server.

Но ничего, когда я делаю то же самое для Джаггернаута.Проверьте скриншот.

enter image description here

РЕДАКТИРОВАТЬ

Я не вижу ни одного журнала для Джаггернаута. Есть один для Redis, но ничего дляДжаггернаут

enter image description here

РЕДАКТИРОВАТЬ

  1. Права доступа к исполняемому файлу /etc/init.d/juggernaut -ДА

        -rwxr-xr-x 1 fizzy fizzy 1310 Sep 19 11:06 juggernaut
    
  2. PIDFILE = / var / run / juggernaut.pid 'определено.Это существует?--- НЕТ

  3. В части 'start' он запускает '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

Ответы [ 2 ]

3 голосов
/ 15 сентября 2011

Вы, вероятно, хотите запустить 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 голосов
/ 31 декабря 2012

Я столкнулся с той же проблемой (используя 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

Сохраните этот файл в / etc / init / (не init.d) и сделайте его исполняемым (chmod + x).Вот и все, Джаггернаут работает как демон, если сервер запущен.

Примечание: рядом с juggernaut.log самого juggernaut находится файл juggernaut.log, расположенный в / var / log / upstart / где информациянаписано о попытках выскочки запустить juggernaut.

Я более или менее скопировал вышеупомянутый скрипт из этого блога .Однако сценарий, показанный там, начинался с:

 start on startup

Это не сработало для меня, потому что файловая система не была правильно смонтирована при запуске, поэтому нет возможности создать juggernaut.log (ошибка файловой системы только для чтения),Кредиты на этот пост на сервере для решения этой проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...