"Rigenerarsi troppo in fretta, fermato". Come disabilitare UPSTART per 5 minuti?


11

Ai vecchi tempi, il demone init usava disabilitare le attività che stavano rigenerando troppo velocemente.

Ho scoperto a mio rischio e pericolo che UPSTART li ha fermati. per sempre.

Ho trovato i controlli COUNT e INTERVAL per quando interrompere un lavoro che sta rigenerando velocemente, ma non riesco a trovare come riavviare quel lavoro dopo un tempo di attesa specificato.

  • Questo è per un server remoto che deve connettersi tramite ssh per poter tornare al tunnel. Ma ha regolarmente problemi di connessione e il lavoro che esegue la connessione SSH sta morendo! Mi aspettavo scioccamente di iniziare il lavoro.

C'è un modo o devo fare qualcosa come eseguire un cron job per verificare se è in esecuzione e se non riavviarlo?

Risposte:


10

Upstart consente una sospensione post-stop per ritardare il riavvio di un lavoro. Da http://upstart.ubuntu.com/cookbook/#delay-respawn-of-a-job

post-stop exec sleep 5

Ora, quando il lavoro fallisce, attenderà 5 secondi prima di tentare di riconnettersi. Combina questo con l'impostazione del respawn su qualcosa come 10 volte in 30 secondi e dovrebbe provare a rigenerare per sempre (proverebbe solo 7 volte in 30 secondi, quindi non dovrebbe essere espulso dal respawn)


Sì, suppongo sia una buona soluzione. Mi chiedo, tuttavia, dovrebbe iniziare la possibilità di specificare un tempo di attesa prima di tentare di eseguire nuovamente il lavoro. Davvero non mi piace l'idea di fermare i lavori morti. Preferivo di gran lunga il modo di init di disabilitare un lavoro per cinque minuti.
Keith,

Penso che il caso d'uso di cui stai parlando sia piuttosto basso. Se un lavoro fallisce, c'è una ragione per questo, quindi dovrebbe essere risolto. La maggior parte delle persone non vorrebbe che il lavoro continuasse a tentare di iniziare e fallire in quanto ciò potrebbe cancellare i registri con informazioni preziose o avere altri risultati catastrofici. Penso che stai usando upstart per qualcosa per cui non è stato progettato, quindi i metodi standard per riavviarlo potrebbero essere fuori discussione. Detto questo, la connessione di rete su quella macchina tenta di riconnettersi quando la connessione si interrompe? In tal caso, potresti essere in grado di avviare il lavoro all'avvio della rete.
tgm4883,

1
Sono sicuro che hai ragione nel dire che questo è ben lungi dall'essere un caso "la maggior parte delle persone". Dato che ho hackerato su slackware e sistemi personalizzati negli ultimi 20 anni, molti di questi concetti mi sono estranei. Potresti indicarmi la giusta direzione per personalizzare l'avvio / riavvio della rete Ubuntu? Dio, questo mi fa sentire vecchio e fuori dal mondo. Potrei farlo su Slackware in 10 secondi.
Keith,

1
questo è coperto nel libro di cucina; loro raccomandano di usare una stanza post-stop: upstart.ubuntu.com/cookbook/#id379
jcomeau_ictx

1
Grazie @jcomeau_ictx, è esattamente così, penso che la risposta dovrebbe essere aggiornata con il link ad esso upstart.ubuntu.com/cookbook/#delay-respawn-of-a-job . Inoltre c'è un ticket e una patch accettati per la richiesta di Keith bugs.launchpad.net/upstart/+bug/252997 con tempo di attesa di rigenerazione prima di riprovare.
Andre Miras,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.