Upstart: lançando algo apenas uma vez

1

Fato: Se você usar start on <event> para um trabalho, seu trabalho poderá ser executado sempre que <event> ocorrer. O livro de receitas do upstart menciona dois métodos para executar somente um trabalho uma vez.

O primeiro é lógico para mim e envolve a criação de um trabalho fictício de execução contínua, iniciado em <event> . Como esse trabalho fictício é executado para sempre e instância única, ele será iniciado apenas uma vez e você poderá usar start on started <dummy-job> em seu trabalho real.

O segundo método parece muito mais simples: start on startup and <event> . O objetivo desta pergunta é entender por que esse segundo método funciona . Isso tem a ver com a compreensão de como on start manipula eventos compostos por and . Ou seja, como <event> ocorre várias vezes, por que o evento composto é acionado apenas uma vez? Será possível que um evento composto seja reatribuído somente depois que ambos startup e <event> sejam reatribuídos? Estou procurando uma confirmação disso.

    
por haelix 20.11.2013 / 12:04

2 respostas

2

Compartilharei minhas descobertas, que dão uma resposta empírica à minha pergunta.

Eu testei usando 2 eventos, desktop-session-start e net-device-up e, de fato, parece que o evento composto desktop-session-start and net-device-up só é acionado quando cada um dos eventos foi acionado.

Especificamente, recebo o evento na primeira vez que faço login no Ubuntu, depois que a rede surgiu (o dhcp foi concluído). Então, se eu alternar a rede, não recebo o evento. Da mesma forma, se eu fizer logout / login, enquanto a rede permanecer conectada, não receberei o evento. Eu só entendo quando faço login e a rede está inativa desde o último acionamento, ou de forma análoga, quando eu trago a interface depois que eu efetuo o logout, desde o último acionamento.

    
por 20.11.2013 / 16:03
0

A expressão event-a and event-b só é verdadeira uma vez que BOTH event-a e event-b tenham sido emitidos, e se o seu job for executado, então BOTH events precisam ser emitidos novamente para serem verdadeiros.

    
por 03.06.2014 / 05:03