upstart: iniciando um serviço assim que o ipv4 estiver pronto

1

Eu tenho um serviço (pequeno serviço http que escuta em 0.0.0.0:8080) escrito em python que começa na inicialização do sistema. O problema é que, às vezes, na inicialização do servidor, ele é iniciado muito cedo, quando o IPv4 ainda não está inicializado (?) Pelo kernel. O serviço falha com erro (de / var / log / upstart):

socket.gaierror: [Errno -9] Família de endereços para o hostname não suportado

Ao iniciar manualmente depois, ele inicia normalmente. Adicionar 'sleep 30' na seção de pré-início também ajuda. Mas gostaria de saber se existe uma maneira melhor e mais limpa de especificar na configuração inicial que esse serviço precisa trabalhar com o ipv4. Não precisa de "roteamento" completo ou gateway padrão ou até de loopback configurado. Tudo o que é necessário é a capacidade de vincular a qualquer endereço IPv4 "0.0.0.0".

    
por thor 03.12.2013 / 10:22

1 resposta

2

Você pode configurar seu trabalho para iniciar quando o evento start on (started networking) for acionado.

started This event is emitted by Upstart when a job is now running. Note that a job does not have to have an associated program or script so "running" does not necessarily imply that any additional process is executing.

    
por 03.12.2013 / 10:38