Ubuntu 14 Upstart, o script nunca é executado - sem arquivo de log

1

Peço desculpas antecipadamente se isso foi respondido, mas examinei todas as outras perguntas e não encontrei nada que ajude.

Aqui está meu script inicial:

nodeapps.conf

start on [2345]
forever start --spinSleepTime 10000 /home/nodeapps/node_app.js
forever start --spinSleepTime 10000 /home/nodeapps/node_metrix.js

Quando eu reinicio, chamo forever list para ver qualquer coisa em execução. Nada aparece. As outras respostas que tenho visto sugerem procurar em / var / log / upstart, mas não há log para nodeapps.

Eu tentei iniciar na inicialização e começar [2345]

Estou sentindo falta de algo óbvio? Eu criei o arquivo em / etc / init /, usando nano.

Edit: Eu deveria notar, este é o Ubuntu 14 através de um VPS, eu só tenho acesso ao console, sem gui.

    
por user281403 14.05.2014 / 05:18

2 respostas

0

Experimente este script inicial:

===

inicie no runlevel [2345]

exec start-stop-daemon --start --exec / usr / bin / para sempre - start --spinSleepTime 10000 /home/nodeapps/node_app.js

exec start-stop-daemon --start --exec / usr / bin / para sempre - start --spinSleepTime 10000 /home/nodeapps/node_metrix.js

===

Basicamente forever não é uma palavra-chave para um script iniciante e o newstart não sabe o que fazer com ele.

exec , no entanto, é uma palavra-chave e informa ao novato qual programa iniciar.

UPDATE: respostas

...do you think I could get away with just using /usr/bin/forever ....? O mais provável é que não. Os scripts iniciantes não são uma sequência de comandos como scripts bash (ou arquivos .bat / .cmd no Windows). Eles são arquivos de configuração (como arquivos .ini no Windows) e uma das opções de configuração aponta para um executável real.

...does this explain the fact that theres no logfile being created? Como para sempre nunca foi iniciado, ele não teve a chance de deixar um arquivo de log para trás. Estou razoavelmente certo de que você poderia encontrar algo nos arquivos de log upstart embora.

    
por sмurf 14.05.2014 / 05:46
0

Eu sei que estou um pouco atrasado para isso, mas ao invés de usar exec e o processo start-stop-daemon, use o daemon embutido para sempre, para sempre.

foreverd start --spinSleepTime 10000 /home/nodeapps/node_app.js
foreverd start --spinSleepTime 10000 /home/nodeapps/node_metrix.js

Se o env raiz não tiver um caminho para sempre (embora provavelmente, porque você o instalou através do sudo npm install -g para sempre), é necessário especificar o caminho para o foreverd, em vez de executar o foreverd. Executar

which foreverd

em um terminal em que você efetuou login para obter a localização de foreverd, em seguida, execute

/path/to/foreverd start --spinSleepTime 10000 /home/nodeapps/node_app.js
/path/to/foreverd start --spinSleepTime 10000 /home/nodeapps/node_metrix.js

Isso também criará automaticamente arquivos de log para sempre em ~ / .forever / .log

você pode descobrir o que está sendo executado para sempre, o que dará uma saída como esta:

jbarber$ forever list
info:    Forever processes running
data:        uid  command             script                                              forever pid  logfile                         uptime       
data:    [0] 4Ola /usr/local/bin/node /home/jbarber/projects/project_name/_stage/index.js 7665    7667 /home/jbarber/.forever/4Ola.log 0:0:6:16.714

Você pode reiniciar / interromper o processo usando

foreverd restart <process_num>
foreverd stop <process_num>

neste exemplo, num será 0.

    
por JBarber 29.08.2014 / 18:34