"Réapparition trop rapide, arrêtée". Comment désactiver UPSTART pendant 5 minutes?


11

Autrefois, le démon init désactivait les tâches qui réapparaissaient trop rapidement.

J'ai découvert à mes risques et périls qu'UPSTART les arrête. pour toujours.

J'ai trouvé les contrôles COUNT et INTERVAL pour savoir quand arrêter un travail qui réapparaît rapidement, mais je ne trouve pas comment redémarrer ce travail après un temps d'attente spécifié.

  • C'est pour un serveur distant qui doit se connecter via ssh pour que je puisse y retourner. Mais il a régulièrement des problèmes de connexion et le travail qui exécute la connexion ssh est en train de mourir! Je m'attendais bêtement à ce que l'on continue de faire fonctionner le travail.

Existe-t-il un moyen, ou dois-je faire quelque chose comme exécuter un travail cron pour vérifier s'il est en cours d'exécution et sinon le redémarrer?

Réponses:


10

Upstart permet un sommeil post-arrêt afin de retarder le redémarrage d'un travail. Depuis http://upstart.ubuntu.com/cookbook/#delay-respawn-of-a-job

post-stop exec sleep 5

Maintenant, lorsque le travail échoue, il attendra 5 secondes avant de tenter de se reconnecter. Combinez cela avec le réglage de la réapparition à quelque chose comme 10 fois en 30 secondes et il devrait essayer de réapparaître pour toujours (il n'essaierait que 7 fois en 30 secondes, donc il ne devrait pas être expulsé de la réapparition)


Oui, c'est une bonne solution de contournement, je suppose. Je me demande cependant si un nouveau venu devrait avoir la possibilité de spécifier un temps d'attente avant d'essayer de relancer le travail. Je n'aime vraiment pas l'idée de simplement arrêter les emplois morts. Je préférais de beaucoup la façon d'init de désactiver un travail pendant cinq minutes.
Keith

Je pense que le cas d'utilisation dont vous parlez est assez faible. Si un travail échoue, il y a une raison à cela, il doit donc être corrigé. La plupart des gens ne voudraient pas que le travail continue à tenter de démarrer et d'échouer, car cela pourrait effacer les journaux contenant des informations précieuses ou avoir d'autres conséquences catastrophiques. Je pense que vous utilisez upstart pour quelque chose pour lequel il n'a pas été conçu, donc les méthodes standard pour le redémarrer pourraient être hors de question. Cela dit, la connexion réseau sur cette machine tente-t-elle de se reconnecter lorsque la connexion s'éteint? Si c'est le cas, vous pourrez peut-être commencer votre travail au démarrage du réseau.
tgm4883

1
Je suis sûr que vous avez raison de dire que c'est loin d'être le cas de "la plupart des gens". Comme je pirate des logiciels slackware et des systèmes sur mesure depuis 20 ans, beaucoup de ces concepts me sont étrangers. Pourriez-vous m'orienter dans la bonne direction pour personnaliser le démarrage / redémarrage du réseau Ubuntu? Dieu, cela me fait me sentir vieux et déconnecté. Je pourrais le faire sur slackware en 10 secondes.
Keith

1
cela est couvert dans le livre de cuisine; ils recommandent d'utiliser une strophe post-stop: upstart.ubuntu.com/cookbook/#id379
jcomeau_ictx

1
Merci @jcomeau_ictx, c'est exactement ça, je pense que la réponse devrait être mise à jour avec le lien vers elle upstart.ubuntu.com/cookbook/#delay-respawn-of-a-job . Il existe également un ticket et un correctif acceptés pour la demande de Keith bugs.launchpad.net/upstart/+bug/252997 avec un temps d'attente de réapparition avant de réessayer.
Andre Miras
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.