скрипт перезапуска процессов используя watchdog
Модератор: Модераторы разделов
скрипт перезапуска процессов используя watchdog
Доброе время суток!
Ситуация такая: есть сервер с Ubuntu 14, на нём три сервиса (процесса), которые зависают при падении интернета.
Интернет подключается через DSL-модем, как следствие - частые паделия линка на 5-10 секунд (провайдер молодец ), но этого уже достаточно для зависания процессов.
Подскажите, как сделать скрипт для перезапуска этих процессов при возобновлении интернета.
Понимаю, что надо в кроне чезез watchdog как-то прикручивать, но не могу разобраться как
Ситуация такая: есть сервер с Ubuntu 14, на нём три сервиса (процесса), которые зависают при падении интернета.
Интернет подключается через DSL-модем, как следствие - частые паделия линка на 5-10 секунд (провайдер молодец ), но этого уже достаточно для зависания процессов.
Подскажите, как сделать скрипт для перезапуска этих процессов при возобновлении интернета.
Понимаю, что надо в кроне чезез watchdog как-то прикручивать, но не могу разобраться как
- Bizdelnick
- Модератор
- Сообщения: 20752
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: скрипт перезапуска процессов используя watchdog
Watchdog — это железка, к cron и тому, чего Вы хотите, она отношения не имеет.
Самое правильное решение было бы исправить сервисы, чтобы они не зависали. Независимо от того, как организована сеть, обрывы — нормальное явление, и любой сетевой софт их нормально переживает. Что там у Вас, какой-то адский самопал?
Второе — если на сервере крутится что-то важное, найдите нормального провайдера.
Ну а если ни то, ни другое не представляется возможным (или возможно только второе и нужна подстраховка), то я бы посоветовал прикрутить monit, передёргивать сервисы он умеет. Можно, конечно, и в crontab прописать скрипт, но такой вариант мне меньше нравится.
Самое правильное решение было бы исправить сервисы, чтобы они не зависали. Независимо от того, как организована сеть, обрывы — нормальное явление, и любой сетевой софт их нормально переживает. Что там у Вас, какой-то адский самопал?
Второе — если на сервере крутится что-то важное, найдите нормального провайдера.
Ну а если ни то, ни другое не представляется возможным (или возможно только второе и нужна подстраховка), то я бы посоветовал прикрутить monit, передёргивать сервисы он умеет. Можно, конечно, и в crontab прописать скрипт, но такой вариант мне меньше нравится.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: скрипт перезапуска процессов используя watchdog
Bizdelnick писал(а): ↑28.03.2015 13:43Watchdog — это железка, к cron и тому, чего Вы хотите, она отношения не имеет.
Ну это может быть я неправильно выразился. Идея была, чтобы с определённым интервалом запускать задачу, пингующую, например, "8.8.4.4". И если утеряны/отклонены столько-то пакетов - перезапускать сервисы!
Bizdelnick писал(а): ↑28.03.2015 13:43Самое правильное решение было бы исправить сервисы, чтобы они не зависали. Независимо от того, как организована сеть, обрывы — нормальное явление, и любой сетевой софт их нормально переживает. Что там у Вас, какой-то адский самопал?
Именно что самопал Сервак достался по наследству, раньше админили другие люди, с которыми нет возможности связаться...
Там стоят три сервиса для работы службы такси (GPS; какая-то странная IP-телефония прикрученная к клиентам под андроид у таксистов; и система учёта заявок, прикрученная к тем же клиентам на андроиде).
По результатам упорного гугления не смог найти ни один ответ, что это за приложения.
Bizdelnick писал(а): ↑28.03.2015 13:43Второе — если на сервере крутится что-то важное, найдите нормального провайдера.
Нормального провайдера там нет
Либо убогий ДСЛ, либо через Вай-фай тарелку через пять километров сеть кидать (это не вариант, нет нормальной видимости, проверял).
Bizdelnick писал(а): ↑28.03.2015 13:43я бы посоветовал прикрутить monit, передёргивать сервисы он умеет. Можно, конечно, и в crontab прописать скрипт, но такой вариант мне меньше нравится.
Проблема и состоит в том. что два из трёх сервисов (monit уже поставил - помогает только с GPS), после отвала интернета остаются в состоянии "running" но работать не работают
Я понимаю, что cron - не панацея. но пока что надо чтобы система хоть как-то автономно работала, а дальше буду тестить и искать более приемлемые решения
Re: скрипт перезапуска процессов используя watchdog
Может перенести сервер туда где есть нормальные интернеты (в датацентр)?
Есть какой-то программный способ понять работает сервис или нет? Например попытаться подключиться к нему. Вот это и проверяй в скрипте вызываемом по cron.
Есть какой-то программный способ понять работает сервис или нет? Например попытаться подключиться к нему. Вот это и проверяй в скрипте вызываемом по cron.
Re: скрипт перезапуска процессов используя watchdog
В Ubuntu же теперь systemd. Он всё это (и многое другое) умеет без дополнительных костылей.
- Bizdelnick
- Модератор
- Сообщения: 20752
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: скрипт перезапуска процессов используя watchdog
В чём проявляется то, что они не работают? Можно ведь это как-то проверить.
Monit тоже много чего проверять умеет.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: скрипт перезапуска процессов используя watchdog
$ynDr0me писал(а): ↑28.03.2015 12:17Доброе время суток!
Ситуация такая: есть сервер с Ubuntu 14, на нём три сервиса (процесса), которые зависают при падении интернета.
Интернет подключается через DSL-модем, как следствие - частые паделия линка на 5-10 секунд (провайдер молодец ), но этого уже достаточно для зависания процессов.
Подскажите, как сделать скрипт для перезапуска этих процессов при возобновлении интернета.
Понимаю, что надо в кроне чезез watchdog как-то прикручивать, но не могу разобраться как
Надо вначале решить две задачи.
1) как узнать, что службы зависли
2) как узнать что было падение интернета
второй пункт решается очень просто, скриптов для проверки интернета вагон и тележка. Главное проверять два или три источника, а то редко но иногда гугл и яндекс бывает недоступен
Вот как вы будите проверять то,что службы зависли я не знаю. Я считаю вообще ересь, что они виснут если пропал интернет.
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Re: скрипт перезапуска процессов используя watchdog
можно ничего не проверять а сразу перезапускать при восстановлении сети.
А вот изменения состояния сети мониторить не так просто как кажется: кратковременные провалы можно и проспать. Я не работал с ADSL (хотя и слышал, что reconnects - это их особенность ), и не знаю, возможно ли запускать скрипты по disconnect/connect как, например, в ppp. Но если сетью управляет network manager, то он рассылает через dbus различные уведомления при изменении состояния сети. Правда, их ещё принять надо...
Re: скрипт перезапуска процессов используя watchdog
Кстати, то же подумал про это. Если модем сделать как мост , думаю можно. Хотя тут надо больше в доку лезть.
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
- Bizdelnick
- Модератор
- Сообщения: 20752
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: скрипт перезапуска процессов используя watchdog
Что NM'у делать на сервере?
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: скрипт перезапуска процессов используя watchdog
Например, уведомлять всех желающих об изменении состояния сети.
- Bizdelnick
- Модератор
- Сообщения: 20752
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: скрипт перезапуска процессов используя watchdog
Для этого хуки есть. А NM — для мобилок. Первым делом отключать его учат даже на официальных красношапочных курсах.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |