"Занадто швидко відросло, зупинилося". Як зробити так, щоб UPSTART відключився на 5 хвилин?


11

За старих часів демон init використовував для відключення завдань, які занадто швидко розросталися.

Я виявив свою небезпеку, що UPSTART просто зупиняє їх. навіки.

Я знайшов елементи COUNT і INTERVAL щодо того, коли зупинити роботу, яка швидко розростається, але я не можу знайти, як перезапустити цю роботу після визначеного часу очікування.

  • Це для віддаленого сервера, який повинен підключитися через ssh, щоб я міг тунель повернутись на нього. Але у нього регулярно виникають проблеми з підключенням, і робота, яка виконує ssh-з'єднання, вмирає! Я нерозумно очікував, що на початку почне продовжувати роботу.

Чи є спосіб, чи мені потрібно зробити щось на кшталт запуску роботи cron, щоб перевірити, чи працює він, а чи не перезапустити його?

Відповіді:


10

Upstart дозволяє спати після зупинки, щоб затримати перезапуск роботи. З http://upstart.ubuntu.com/cookbook/#delay-respawn-of-a-job

post-stop exec sleep 5

Тепер, коли завдання не вдасться, воно зачекатиме 5 секунд, перш ніж спробувати підключитися. Поєднайте це, встановивши респаун на щось на зразок 10 разів за 30 секунд, і він повинен намагатися відновлюватись назавжди (це буде намагатися лише 7 разів за 30 секунд, тому його не слід виганяти з респауна)


Так, я гадаю, це вдалий спосіб вирішення. Мені цікаво, але чи слід перед початком роботи визначати час очікування, перш ніж спробувати запустити роботу. Мені дуже не подобається, що ідея просто зупиняє роботу мертвою. Я набагато віддав перевагу способу Інітаза відключити роботу на п’ять хвилин.
Кіт

Я думаю, що випадок використання, про який ви говорите, досить низький. Якщо робота не працює, є причина в ній, тому її слід виправити. Більшість людей не хотіли б, щоб робота продовжувалась намагатися розпочати і не вдатися, оскільки це може очистити журнали з цінною інформацією або мати інші катастрофічні результати. Я думаю, що ви використовуєте новітню програму для чогось, для чого вона не була розроблена, тому про звичайні методи її перезапуску це може бути і не до речі. Однак, чи намагається мережне підключення на цій машині знову підключитися, коли з'єднання вмирає? Якщо так, то, можливо, ви зможете розпочати роботу в мережі.
tgm4883

1
Я впевнений, що ви праві, що це далеко не випадок "більшості людей". Оскільки я хотів зламати програмне забезпечення та створені на замовлення системи протягом останніх 20 років, багато цих понять мені чужі. Не могли б ви вказати мені в правильному напрямку, щоб налаштувати запуску / перезапуск мережі Ubuntu? Боже, це змушує мене відчувати себе старим і не дотиком. Я міг це зробити на слабій програмі за 10 секунд.
Кіт

1
це висвітлено у кулінарній книзі; вони рекомендують використовувати строфу після зупинки: upstart.ubuntu.com/cookbook/#id379
jcomeau_ictx

1
Дякую @jcomeau_ictx, саме так, я думаю, відповідь слід оновити за посиланням на неї upstart.ubuntu.com/cookbook/#delay-respawn-of-a-job . Також є прийнятий квиток та патч для запиту Keith bugs.launchpad.net/upstart/+bug/252997 з перезапущеним часом очікування перед повторним спробою.
Андре Мірас
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.