Simple self-upgrade

Вопросы по программированию, не подходящие в другие разделы.

Модераторы: Naeel Maqsudov, C_O_D_E

Ответить
Аватара пользователя
accessdenied
Сообщения: 5
Зарегистрирован: 13 ноя 2008, 11:43
Откуда: Россия, Нижний Новгород
Контактная информация:

Интересная задача: реализовать отказоустойчивый самоапгрейд.

Дано:
1) Linux (SuSE SLED 10/11)
2) процесс работает под суперпользователем, предоставляет сервис обычным пользователям

Требуется:
1) без вмешательства админа иметь возможность обновлять процесс
2) проваленный апгрейд не должен класть серсис
3) подлог левого процесса невозможен

Пока придумалось так: сервис периодически проверяет некую папку, при наличии в ней нового исполняемого файла проверяет его неким образом, потом стартует и смотрит на него, не падает ли, ждет от него установления коннекта. Если коннект есть и обмен заканчивается нормально - старый процесс выходит, иначе - убивает новый процесс и докладывает о провале апгрейда.

Много открытых вопросов с безопасностью, но, думаю, все можно решить. Хотя и хочется все сделать попроще. Как можно проще. Проще - меньше проблем :-)

Покопал инет на предмет safe self-upgrade, находятся только статьи типа "как стать лучше", про личностные качества, по программированию - ноль.
Может быть кто-то знает что-нибудь по теме?
Ответить