Meu script upstart diz que está sendo executado, mas na verdade não é executado - Ubuntu 10.04 LTS

2

Isso está no Ubuntu 10.04 LTS

Então eu tenho um script gulp (correndo através do Node) que funciona muito bem quando eu o executo manualmente. Na verdade, ele executa um "watch" em um diretório para que, se algum dos arquivos o alterar, execute automaticamente um comando. O problema inicial que tive foi se eu salvar uma alteração que tem um bug, o "relógio" falha.

Eu pensei que poderia consertar isso executando o script gulp através do upstart e reaparecer se ele falhar. Mas quando eu corro "start gulpwatch" ou até mesmo "sudo start gulpwatch" ele diz que começa e me dá um pid mas na verdade ele apenas inicia e falha e não mantém o "watch". Isso é confirmado no syslog onde vejo as linhas:

Mar 24 14:19:19 ubuntu init: gulpwatch main process (2653) terminated with status 2
2072 Mar 24 14:19:19 ubuntu init: gulpwatch main process ended, respawning
2073 Mar 24 14:19:19 ubuntu init: gulpwatch main process (2654) terminated with status 2
2074 Mar 24 14:19:19 ubuntu init: gulpwatch main process ended, respawning
2075 Mar 24 14:19:19 ubuntu init: gulpwatch main process (2655) terminated with status 2
2076 Mar 24 14:19:19 ubuntu init: gulpwatch main process ended, respawning
2077 Mar 24 14:19:19 ubuntu init: gulpwatch main process (2656) terminated with status 2
2078 Mar 24 14:19:19 ubuntu init: gulpwatch main process ended, respawning
2079 Mar 24 14:19:19 ubuntu init: gulpwatch main process (2657) terminated with status 2
2080 Mar 24 14:19:19 ubuntu init: gulpwatch main process ended, respawning
2081 Mar 24 14:19:19 ubuntu init: gulpwatch main process (2658) terminated with status 2

Aqui está o meu arquivo inicial

/etc/init/gulpwatch.conf
   start on runlevel [2345]
    stop on runlevel [016]
    respawn
    respawn limit 5 10

    exec "cd /opt/lib/vendor/node/;/usr/bin/gulp --gulpfile gulpfile.js"

Quando executo os dois comandos listados acima, "cd / opt / lib / vendor / node /" e "/ usr / bin / gulp --gulpfile gulpfile.js", ele funciona perfeitamente (mas, claro, não será reenviado se ele falha devido a um erro de sintaxe no arquivo de observação).

Alguma idéia do motivo do meu script inicial não estar funcionando?

    
por asolberg 24.03.2014 / 22:40

2 respostas

2

Eu percebi isso. Eu precisava executar o chdir /opt/lib/vendor/node/ e depois retirar essa parte da instrução exec . Aparentemente exec não roda nenhum comando shell antigo, ele apenas executa scripts (e argumentos)

    
por 25.03.2014 / 00:05
-1

Você deve tentar executar a linha antes de executá-la através do script upstart. Quero dizer esta linha:

cd /opt/lib/vendor/node/;/usr/bin/gulp --gulpfile gulpfile.js

O que você obteve quando o executou no servidor? Se você receber um erro em vez de um sucesso, resolva-o primeiro.

    
por 14.01.2016 / 23:52