Ubuntu upstart usa um script para rodar vários outros

1

Este script iniciará os serviços:

#!upstart

description "example.com"
author      "Geert"

script
  for service in "website" "feeds" "jobs"
  do
    exec start service.example.com service=$service
  done
end script

O script de serviço é assim:

#!upstart

description "service.example.com"
author      "Geert"

start on (local-filesystems and net-device-up IFACE=eth0) 
stop  on shutdown

respawn                # restart when job dies

instance $service

script
  exec /home/fs/.nvm/v0.6.7/bin/coffee /home/fs/Dropbox/work/2012/krafters/$service.coffee
end script

O problema que tenho é que parece estar apenas criando o serviço do site.

initctl list | grep example
example.com stop/waiting
service.example.com (website) start/running, process 22787
    
por Pickels 11.04.2012 / 16:01

1 resposta

1

Primeiramente, os arquivos de configuração de tarefas do Upstart (arquivos .conf) não são scripts no sentido convencional: a primeira linha que você tem (' #!upstart ') é completamente redundante e será tratada apenas como comentário.

Seu problema é o uso de ' exec ' no primeiro arquivo .conf com o loop for: exec substitui o shell atualmente em execução pelo argumento que você fornece exec, portanto, somente a primeira entrada no loop for será executada.

Para corrigir isso, simplesmente remova ' exec ' no primeiro arquivo .conf.

    
por 01.05.2012 / 18:26