скрипт перезапуска процессов используя watchdog

Модератор: Модераторы разделов

Ответить
$ynDr0me
Сообщения: 2
ОС: Ubuntu, Redhat, CentOS, Debian

скрипт перезапуска процессов используя watchdog

Сообщение $ynDr0me »

Доброе время суток!
Ситуация такая: есть сервер с Ubuntu 14, на нём три сервиса (процесса), которые зависают при падении интернета.
Интернет подключается через DSL-модем, как следствие - частые паделия линка на 5-10 секунд (провайдер молодец :wacko: ), но этого уже достаточно для зависания процессов.
Подскажите, как сделать скрипт для перезапуска этих процессов при возобновлении интернета.

Понимаю, что надо в кроне чезез watchdog как-то прикручивать, но не могу разобраться как :(
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: скрипт перезапуска процессов используя watchdog

Сообщение Bizdelnick »

Watchdog — это железка, к cron и тому, чего Вы хотите, она отношения не имеет.
Самое правильное решение было бы исправить сервисы, чтобы они не зависали. Независимо от того, как организована сеть, обрывы — нормальное явление, и любой сетевой софт их нормально переживает. Что там у Вас, какой-то адский самопал?
Второе — если на сервере крутится что-то важное, найдите нормального провайдера.
Ну а если ни то, ни другое не представляется возможным (или возможно только второе и нужна подстраховка), то я бы посоветовал прикрутить monit, передёргивать сервисы он умеет. Можно, конечно, и в crontab прописать скрипт, но такой вариант мне меньше нравится.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
$ynDr0me
Сообщения: 2
ОС: Ubuntu, Redhat, CentOS, Debian

Re: скрипт перезапуска процессов используя watchdog

Сообщение $ynDr0me »

Bizdelnick писал(а):
28.03.2015 13:43
Watchdog — это железка, к 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 - не панацея. но пока что надо чтобы система хоть как-то автономно работала, а дальше буду тестить и искать более приемлемые решения :wacko:
Спасибо сказали:
MrClon
Сообщения: 838
ОС: Ubuntu 10.04, Debian 7 и 6

Re: скрипт перезапуска процессов используя watchdog

Сообщение MrClon »

Может перенести сервер туда где есть нормальные интернеты (в датацентр)?

Есть какой-то программный способ понять работает сервис или нет? Например попытаться подключиться к нему. Вот это и проверяй в скрипте вызываемом по cron.
Спасибо сказали:
Аватара пользователя
s.xbatob
Сообщения: 1139
ОС: Fedora

Re: скрипт перезапуска процессов используя watchdog

Сообщение s.xbatob »

В Ubuntu же теперь systemd. Он всё это (и многое другое) умеет без дополнительных костылей.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: скрипт перезапуска процессов используя watchdog

Сообщение Bizdelnick »

$ynDr0me писал(а):
29.03.2015 07:53
два из трёх сервисов (monit уже поставил - помогает только с GPS), после отвала интернета остаются в состоянии "running" но работать не работают

В чём проявляется то, что они не работают? Можно ведь это как-то проверить.

MrClon писал(а):
29.03.2015 12:26
Вот это и проверяй в скрипте вызываемом по cron.

Monit тоже много чего проверять умеет.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
TuLiss
Сообщения: 1611
Статус: 01100
ОС: Gentoo,Ubuntu,MacOS X
Контактная информация:

Re: скрипт перезапуска процессов используя watchdog

Сообщение TuLiss »

$ynDr0me писал(а):
28.03.2015 12:17
Доброе время суток!
Ситуация такая: есть сервер с Ubuntu 14, на нём три сервиса (процесса), которые зависают при падении интернета.
Интернет подключается через DSL-модем, как следствие - частые паделия линка на 5-10 секунд (провайдер молодец :wacko: ), но этого уже достаточно для зависания процессов.
Подскажите, как сделать скрипт для перезапуска этих процессов при возобновлении интернета.

Понимаю, что надо в кроне чезез watchdog как-то прикручивать, но не могу разобраться как :(


Надо вначале решить две задачи.

1) как узнать, что службы зависли
2) как узнать что было падение интернета

второй пункт решается очень просто, скриптов для проверки интернета вагон и тележка. Главное проверять два или три источника, а то редко но иногда гугл и яндекс бывает недоступен :)

Вот как вы будите проверять то,что службы зависли я не знаю. Я считаю вообще ересь, что они виснут если пропал интернет.
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Спасибо сказали:
Аватара пользователя
s.xbatob
Сообщения: 1139
ОС: Fedora

Re: скрипт перезапуска процессов используя watchdog

Сообщение s.xbatob »

TuLiss писал(а):
11.04.2015 21:21
Вот как вы будите проверять то,что службы зависли я не знаю. Я считаю вообще ересь, что они виснут если пропал интернет.

можно ничего не проверять а сразу перезапускать при восстановлении сети.
А вот изменения состояния сети мониторить не так просто как кажется: кратковременные провалы можно и проспать. Я не работал с ADSL (хотя и слышал, что reconnects - это их особенность ;) ), и не знаю, возможно ли запускать скрипты по disconnect/connect как, например, в ppp. Но если сетью управляет network manager, то он рассылает через dbus различные уведомления при изменении состояния сети. Правда, их ещё принять надо...
Спасибо сказали:
Аватара пользователя
TuLiss
Сообщения: 1611
Статус: 01100
ОС: Gentoo,Ubuntu,MacOS X
Контактная информация:

Re: скрипт перезапуска процессов используя watchdog

Сообщение TuLiss »

s.xbatob писал(а):
11.04.2015 23:47
Я не работал с ADSL (хотя и слышал, что reconnects - это их особенность ;) ), и не знаю, возможно ли запускать скрипты по disconnect/connect как, например, в ppp.


Кстати, то же подумал про это. Если модем сделать как мост , думаю можно. Хотя тут надо больше в доку лезть.
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: скрипт перезапуска процессов используя watchdog

Сообщение Bizdelnick »

s.xbatob писал(а):
11.04.2015 23:47
если сетью управляет network manager

Что NM'у делать на сервере?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
s.xbatob
Сообщения: 1139
ОС: Fedora

Re: скрипт перезапуска процессов используя watchdog

Сообщение s.xbatob »

Bizdelnick писал(а):
12.04.2015 11:23
Что NM'у делать на сервере?

Например, уведомлять всех желающих об изменении состояния сети. :blush:
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: скрипт перезапуска процессов используя watchdog

Сообщение Bizdelnick »

Для этого хуки есть. А NM — для мобилок. Первым делом отключать его учат даже на официальных красношапочных курсах.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Ответить