Upstart и Node js: не удается найти модуль

Я пытаюсь настроить upstart для запуска с моим сервером Node js и Socket.io.

/etc/init/quizens.conf

env NODE_BIN=/usr/bin/node
env APP_DIR=/root/quizens
env SCRIPT_FILE="quizens.js"
env LOG_FILE=/root/quizens.log
env RUN_AS="root"

start on filesystem
stop on shutdown

respawn
respawn limit 1 10

script
    touch $LOG_FILE
    chown $RUN_AS:$RUN_AS $LOG_FILE
    chdir $APP_DIR
    exec sudo -u $RUN_AS sh -c "$NODE_BIN $SCRIPT_FILE >> $LOG_FILE 2>&1"
end script

Когда я запускаю start quizens в файле журнала, я получаю Cannot find module fb...., даже если я просто запускаю сервер из командной строки, он работает. Модули установлены с -g, и они находятся в /usr/lib/node_modules

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

Разница в том, что узел локальной машины установлен в / usr / local / bin / node, а не в / usr / bin / node. Это проблема?

РЕДАКТИРОВАТЬ: Вчера я добавил еще один IP для экземпляра. Я не знаю, имеет ли это какое-либо отношение к выскочке ...

0
задан 6 August 2013 в 14:30

2 ответа

Простое исправление, просто создайте символическую ссылку:

sudo ln -s /usr/bin/nodejs /usr/bin/node

source

0
ответ дан 6 August 2013 в 14:30

Попробуйте удалить sudo, это может испортить ваш рабочий каталог. Раздел сценария уже запущен от имени пользователя root. Exec line может выглядеть как exec $NODE_BIN $SCRIPT_FILE >> $LOG_FILE 2>&1. Вы также можете удалить строки с помощью touch и chown.

0
ответ дан 6 August 2013 в 14:30

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

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