O servidor Node.js não é iniciado após a reinicialização

1

Configuração do trabalho inicializável do meu servidor Node.js:

start on (net-device-up and runlevel [2345] and started td-agent)
stop on runlevel [016]

respawn

env HOME="/var/nodes"

script
    chdir $HOME
    exec /usr/local/bin/node index.js -c app/config/live >> /var/log/node/server.log 2>> /var/log/node/server_error.log
end script

Quando eu corro:

initctl check-config node

Eu tenho isso:

node
  start on: unknown job td-agent

Quando o servidor é inicializado, o Node está inativo, mas posso iniciá-lo manualmente:

service node start
node start/running, process 1156

EDITAR: Se eu remover and started td-agent , ele será iniciado na inicialização. Mas eu preciso do Node iniciado após o td-agent. Como posso resolver este problema?

    
por Roman Newaza 14.03.2013 / 06:11

1 resposta

2

O Upstart parece não saber nada sobre td-agent . Isso porque o upstart reconhece apenas trabalhos iniciados por iniciantes.

Provavelmente td-agent é iniciado por um script em /etc/init.d . Se esse for o caso, você não pode usar o upstart para iniciar node e tê-lo dependendo de td-agent .

A solução não é usar upstart. Você precisa escrever um novo script para /etc/init.d que inicia node .

Você deve executá-lo após o script td-agent start. Quando você tiver seu script, use o comando update-rc.d para definir quando ele é iniciado.

Aqui está um link para um exemplo de script de início mínimo. É para liferay, mas apenas corrija as variáveis de ambiente, e substitua as funções start () e stop () por suas próprias definições. Exemplo de script init liferay .

    
por 15.03.2013 / 13:08