Не удается запустить сервер juggernaut в качестве фонового процесса / службы

Я использую приложение ruby ​​on rails для реализации чата. Я не могу настроить сервер juggernaut в производственном режиме.

Я следовал этому руководству для настройки redis. и он работает отлично.

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

Вот команды grep, которые проверяют, что redis работает, а juggernaut нет.

enter image description here

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

 Starting/Stopping redis-server: redis-server.

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

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. В части «начало» запускается «chown juggernaut: juggernaut». Существует ли пользователь juggernaut и является ли он членом группы juggernaut? - ДА / ДА

      cat /etc/group
          redis:x:1002:
          juggernaut:x:113:
    
      groups juggernaut
          juggernaut : juggernaut
    
  4. Запуск sudo juggernaut запускает сервер, но я хочу, чтобы он продолжал работать в фоновом процессе / службе.

enter image description here

Я застрял сейчас. Кто-нибудь может мне помочь.

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

    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

, после чего я попытался перезапустить Джаггернаут, используя [ 1138]

         sudo /etc/init.d/juggernaut start

Сервер запущен, но не как фоновый процесс / служба.

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

Запуск сценария в режиме отладки:

   + 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

Вот на все используемые порты

tcp        0      0 localhost.localdom:9312 *:*                     LISTEN     
tcp        0      0 localhost.localdo:mysql *:*                     LISTEN     
tcp        0      0 *:6379                  *:*                     LISTEN     
tcp        0      0 *:http-alt              *:*                     LISTEN     
tcp        0      0 *:www                   *:*                     LISTEN     
tcp        0      0 localhost.localdo:52433 *:*                     LISTEN     
tcp        0      0 *:ssh                   *:*                     LISTEN     
tcp        0      0 localhost.localdo:53784 *:*                     LISTEN     
tcp        0      0 *:smtp                  *:*                     LISTEN     
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     
1
задан 20 September 2011 в 14:58

1 ответ

Что бы я сделал для отладки такого рода проблемы выскочки: отредактируйте /etc/init.d/juggernaut и измените строку Шебанга вверху, чтобы добавить -x, например

#! /bin/bash -x

, затем попытайтесь запустить сервис, и вы должны увидеть, как он выводит отладочную информацию, которая, как мы надеемся, прояснит, в чем дело.

обновление: вторая последняя строка

 + test -x /usr/bin/juggernaut

проясняет (для меня :-) сценарий инициализации прерывается, потому что считает, что juggernaut не установлен. Вам нужно обновить эту строку, чтобы она указала на /usr/local/bin/juggernaut.

обновление: «используемый адрес» означает, что другой процесс прослушивает этот сокет, возможно, еще одну копию Джаггернаута. netstat -tpl скажет вам.

0
ответ дан 20 September 2011 в 14:58

Другие вопросы по тегам:

Похожие вопросы: