upstart jobs e “and” conditions

0

Estou tentando começar um trabalho inicial depois de dois outros trabalhos terem sido concluídos. Por exemplo, eu tenho o debug.conf que se parece com:

start on stopped networking and stopped screen-cleanup
task
script
    date
end script

Eu adicionei uma chamada de data no final do script de screen-cleanup.conf e no início do script pós-parado da rede também. As marcações de horário devem permitir que eu veja mais ou menos em que ordem as coisas foram executadas.

Eu reiniciei várias vezes agora e o comportamento parece ser variável. Inicialmente, descobri que o trabalho de "depuração" acima seria executado após "rede", mas antes de "limpeza de tela" ter sido concluída (com base nas saídas de data). Desde então, tentei vários testes e descobri condições semelhantes, mas, dependendo dos sinais que eu estava enviando via initctl emit (para evitar que eu tivesse que reinicializar), em vez de "parado", trabalhe como esperado.

Para explorar mais o comportamento na inicialização, criei e removi vários trabalhos de teste e agora descobri que o trabalho de "depuração" não é executado. Eu copiei o arquivo conf para outro nome e mudei o "e" para um "ou" e verifiquei que esse trabalho foi disparado duas vezes durante a inicialização.

Eu olhei para o livro de receitas , mas não consigo ver o que estou fazendo de errado. screen-cleanup também é uma tarefa, se isso fizer diferença (é o arquivo que veio com o pacote de tela além da minha chamada adicional até a data).

Eu estou rodando 13.10 embora eu esteja esperando por algo que funcione de volta para 12.04 LTS na pior das hipóteses.

EDIT: e depois de mais reinicializações estou de volta ao trabalho acionando a primeira coisa a parar (rede), ao invés do último (screen-cleanup). Eu só posso supor que há um fator extra que não estou percebendo.

    
por user133831 17.10.2013 / 18:19

1 resposta

0

O comportamento de stopped networking foi alterado entre o Ubuntu 12 e o 13 porque o trabalho de rede não é mais uma tarefa. Isso faz com que a condição stopped networking seja disparada, efetivamente, no desligamento do sistema.

Os horários em que o trabalho parece ter sido acionado antecipadamente são, presumivelmente, momentos em que ele realmente foi disparado pouco antes da reinicialização.

Existe um relatório de erros sobre o livro de receitas sugerindo" rede parada " sem mencionar que mudou o comportamento entre os lançamentos. Eu mudei para static-network-up , que parece ter sido disparado depois que ifup -a foi executado, então é provavelmente a mesma coisa. O livro de receitas sugere que isso não funcionará em nada mais antigo que o Ubuntu 11.

    
por user133831 21.10.2013 / 11:11