2013-05-23 8 views
21

Я пытаюсь запустить сервер узла, используя команду forever. Я установил навсегда во всем мире с помощью:Node.js - Не удается запустить сервер узла, используя forever

npm install forever -g 

После установки навсегда я пытаюсь запустить мой сценарий узла с помощью следующей команды:

node_modules\.bin\forever start app.js 

Ниже моя консоль:

warn: --minUptime not set. Defaulting to: 1000ms 
warn: --spinSleepTime not set. Your script will exit if it does not stay up f 
or at least 1000ms 
info: Forever processing file: app.js 

Пожалуйста, помогите меня решить эту проблему!

+0

что это в свой файл app.js? – AndyD

+0

попробуйте 'forever list', чтобы проверить, работает ли ваш app.js? –

+0

(извините за спам), если вы видите ваш app.js в списке 'everever list ', и все же вы все еще думаете, что он не запущен, откройте файл журнала, который' everever' создал, чтобы увидеть, есть ли какая-либо ошибка. –

ответ

-6

Если вы установили модуль globaly (опция -g) "навсегда" находится в $ пути

forever start app.js 

должен работать.

+2

команда «forever start app.js» выдает сообщение, которое я опубликовал! –

6

Здесь нет никаких проблем, кроме предупреждений для configs forever, которые вы рекомендуете заявить. Если вы видите окончательное сообщение там, оно сообщает вам, что оно обработало ваш скрипт. Просто запустите forever list, и вы увидите, как работает ваш скрипт.

Я столкнулся с этим тем же, когда устанавливаю npm через репозиторий yum (yum install npm), а затем устанавливаю навсегда, тогда как когда я устанавливаю узел и npm через сценарии оболочки, а затем устанавливаю навсегда, это не происходит. Он должен иметь какое-то отношение к формулам для установщика пакетов или потенциально отсутствовать псевдоним с флагами с установщиком, чтобы установить эти значения за сценой.

Это не значит, что это не работает. Ниже я создал файл JS, используя примеры кода с сайта узла и запустил его вручную (я покраснела брандмауэр, чтобы открыть порт для приложения временно, но вам это не нужно):

[[email protected] ~]# vi example.js 
[[email protected] ~]# apf -f 
apf(23924): {glob} flushing & zeroing chain policies 
apf(23924): {glob} firewall offline 
[[email protected] ~]# node example.js 
Server running at http://127.0.0.1:1337/ 

Я тогда начать приложение с использованием навсегда:

^C[[email protected] ~]# forever start example.js 
warn: --minUptime not set. Defaulting to: 1000ms 
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms 
info: Forever processing file: example.js 

Теперь я проверяю, если мое приложение работает:

[[email protected] ~]# forever list 
info: Forever processes running 
data:  uid command  script  forever pid logfile     uptime  
data: [0] dan1 /usr/bin/node example.js 23976 23978 /root/.forever/dan1.log 0:0:0:27.320 
[[email protected] ~]# 
+1

Часть, которую мне не хватало, - это сообщение «Forever processing file: app.js» означает, что он сработал. Я не понимал, что файл был обработан в фоновом режиме, и вам нужно было сделать 'everever list', чтобы увидеть процессы. У меня теперь есть 4, потому что я пробовал это снова и снова. Ха-ха. – kentcdodds

+0

Но изменения не отражаются, когда я обновляю свою веб-страницу после внесения некоторых изменений в код конца кода в app.js –

1

Это решило мою проблему:

forever start -c node [path/to/app] 

"-c" означает - выполнить commnad; а затем просто запускайте через nodejs

Таким образом, вы получаете Respawn по умолчанию мин. 1000мс аптайм

Взятые из: https://github.com/nodejitsu/forever/issues/422, по "Basarat"

1

Первая остановка всех запущенных приложений:

forever stopall 

затем использовать эту команду. Это работает для меня, и решить мою проблему:

forever -w ./bin/www 

и вы должны найти это в package.json файле:

"scripts": { 
    "start": "node ./bin/www" 
    } 

Я надеюсь, что это помогает.

0

Одна вещь, которая также производит такой же вывод, но не запускает приложение, это если forever не может выполнить запись в указанный файл журнала. У меня был случай, когда файл журнала стал слишком большим, и это предотвратило запуск процесса.

0

Во-первых, изменить package.json сценарии как

"scripts": { 
     "start": "forever ./bin/www.js" 
} 

чем запустить эту команду на Linux консоли: Sudo НПМ начать

для окон просто: НПМ начать

Смежные вопросы