LINUX.ORG.RU
ФорумAdmin

Как запустить самовозобновляющийся (self-restoring ??) процесс в linux?

 , , ,


1

4

Что есть: 1. На VPS стоит Debian. 2. Там крутится некий процесс (это скрипт на Питоне, но это не важно), в фоновом режиме, который должен работать ВСЕГДА. 3. По разным причинам, иногда этот процесс останавливают (например, хостер может ограничивать время непрерывной работы процесса и т.п.).

Что нужно: 1. Чтобы если этот процесс «убили», он бы запустился заново.

Идеи: 1. Запустить ДВА процесса. Первый, «А», просто смотрит - «крутится» ли второй процесс, «Б». Если процесс Б работает, то процесс А ничего не делает. А если процесс Б перестал выполняться, процесс «А» просто заново запускает «Б» в фоновом режиме. К сожалению, я не могу пока сам такое сделать... Поиск в Google по словам how run process + self recovering/ self-regenerating /self-healing ничего не дал....( 2. А может попроще как? Должно же быть такое как то уже реализовано?

Перемещено beastie из development

сделай на старте форк, родитель мониторит потомка и если тот падает то перезапускает. Но если у тебя могут вообще любой процес в системе грохнуть то тут уже ничего не спасёт.

PS ты бы купил нормальный хостинг, а не костылей городил.

PPS а systemd это из коробки умеет.

true_admin ★★★★★
()

Плюсую respawn в inittab.

ССЗБ с systemd пусть валят лесом.

Anon
()

скрипт для проверки состояния в cron

invokercd ★★★★
()

Если мгновенное поднятие не нужно, а можно потерпеть полминутки (в среднем), то cron — дешего и сердито.

anonymous
()

Уже выражал эту мысль, но

процесс ... который должен работать ВСЕГДА

и один инстанс, на котором это крутится - это деление на ноль.

Берешь какой-нибудь AWS, GAE, Heroku, Azure, etc поднимаешь там хотя бы 2 инстанса в разных регионах, наслаждаешься 99,99%+ аптаймом.

Dantix ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.