Meu script inicial diz que está em execução, mas na verdade não funciona - Ubuntu 10.04 LTS

Meu script inicial diz que está em execução, mas na verdade não funciona - Ubuntu 10.04 LTS

Isso está no Ubuntu 10.04 LTS

Então eu tenho um script gulp (rodando no 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 for alterado, ele execute automaticamente um comando. O problema inicial que tive foi que, se eu salvasse uma alteração que continha um bug, o "relógio" travava.

Achei que poderia consertar isso executando o script gulp por meio do upstart e reaparecendo se ele travasse. Mas quando executo "start gulpwatch" ou mesmo "sudo start gulpwatch" ele diz que inicia e me dá um pid, mas na verdade apenas inicia e trava 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á 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 que não irá reaparecer se travar devido devido a um erro de sintaxe no arquivo monitorado).

Alguma idéia de por que meu script inicial não está funcionando?

Responder1

Eu descobri. Eu precisava executar chdir /opt/lib/vendor/node/e retirar essa parte da execinstrução. Aparentemente execnão executa nenhum comando shell antigo, ele apenas executa scripts (e argumentos)

Responder2

Você deve tentar executar a linha antes de executá-la por meio do script inicial. Quero dizer esta linha:

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

O que você obteve ao executá-lo no servidor? Se você receber um erro em vez de um sucesso, resolva-o primeiro.

informação relacionada