Upstart é um sistema baseado em eventos. Para que o seu trabalho seja executado em um estágio correto, pode ser necessário aguardar eventos específicos emitidos por outro (s) trabalho (s) de inicialização.
As soluções possíveis serão diferentes de sistema para sistema e dependerão de como as tarefas iniciais são definidas e de quais eventos elas emitem. Pode também depender da versão inicial instalada no sistema.
Por favor, note que o upstart pode não gravar seus logs em /var/log/upstart
. Versões anteriores podem usar syslogd
, enquanto as mais novas têm maior probabilidade de gravar logs em /var/log/upstart
.
Abaixo, a solução funcionará apenas no tipo de sistema mencionado na pergunta:
os/upstart = aws base AMI latest version - upstart-0.6.5-13.3.13.amzn1.x86_64
Neste sistema, o upstart não registrou o job echo
em nenhum lugar. Então, essa parte pode exigir configuração extra.
Definição do trabalho:
description "testjob"
start on started elastic-network-interfaces
script
echo $(ping -c 1 serverfault.com) > /var/log/testjob.log
end script
Teste em uma instância real do EC2:
# cat /var/log/testjob.log
PING serverfault.com (198.252.206.140) 56(84) bytes of data. 64 bytes from stackoverflow.com (198.252.206.140): icmp_seq=1 ttl=51 time=72.9 ms --- serverfault.com ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 73ms rtt min/avg/max/mdev = 72.950/72.950/72.950/0.000 ms