Upstart e Node js: Não é possível encontrar o módulo

0

Estou tentando configurar o upstart para executar com meu servidor Node js e 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

Quando executo start quizens no arquivo de log, obtenho Cannot find module fb.... se eu simplesmente iniciar o servidor a partir da linha de comando. Os módulos são instalados com -g e residem em /usr/lib/node_modules

Não consigo encontrar um problema enquanto na minha máquina local funciona como um encanto, mas não quando o coloco em uma instância do softlayer.

A diferença é que o Nó da máquina local está instalado em / usr / local / bin / node não em / usr / bin / node. Este é o problema?

EDIT: Ontem adicionei outro IP para a instância. Eu não sei se isso tem alguma coisa a ver com o upstart ...

    
por Tiberiu Maxim 06.08.2013 / 10:12

2 respostas

0

Tente remover o sudo, isso provavelmente irá atrapalhar seu diretório de trabalho. A seção de script é executada como root já. A linha executável pode parecer com exec $NODE_BIN $SCRIPT_FILE >> $LOG_FILE 2>&1 . Você também pode remover linhas com touch e chown .

    
por Tuminoid 06.08.2013 / 11:29
0

Correção simples, basta criar um simlink:

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

fonte

    
por mchid 06.04.2016 / 16:35