Upstart não está executando meu script DNS dinâmico

1

Eu tenho um script DNS dinâmico da seguinte forma:

#!/bin/bash
curl -kL# "http://example.com/updatedns.php"
echo $? >> /var/log/ddns

... salvo em / usr / local / bin / ddns. Obviamente, o URL acima não é o que eu realmente uso, mas o URL é destinado a definir o registro do meu domínio para o IP da máquina que o solicitou. Eu confirmei que ele foi chmodded e é executado a partir da linha de comando, no entanto, Upstart, que foi configurado com o seguinte script:

start on network started
exec /usr/local/bin/ddns

... não o executa quando a rede inicia (o que estou assumindo é quando a máquina é inicializada ou eu conecto o cabo da rede).

Eu comecei a usar o Google na rede iniciada e encontrei alguns resultados dizendo que essa estrofe não na verdade, comece corretamente, mas ainda é acionado, mas não tenho certeza se isso está relacionado ou não. Estou fazendo algo errado? Estou executando o Ubuntu Server 11.10.

    
por kirb 06.01.2012 / 13:38

2 respostas

2
grep 'emit' /etc/network/if-up.d/upstart -a5

Sugere que você provavelmente deve usar start on net-device-up .

Se você tiver mais de um dispositivo det (e nem todos têm gateways), você pode adicionar um argumento no final da seguinte forma:

start on net-device-up IFACE=eth0
    
por Oli 06.01.2012 / 13:51
3

O método tradicional (pré-início e ainda em funcionamento) era colocar scripts no diretório /etc/network/if-up.d .

Observe que o Ubuntu tem scripts de atualização do DynDNS pré-empacotados: posso ver dyndns , ddclient , inadyn , ez-ipupdate e ipcheck empacotados no Ubuntu. Todos devem funcionar:)

    
por tumbleweed 06.01.2012 / 14:09