Size: a a a

DevOps — русскоговорящее сообщество

2020 December 24

ГХ

Галактический Холоди... in DevOps — русскоговорящее сообщество
хм, однако, интересно https://github.com/nmap/nmap/issues/2199
источник

A

Asgoret in DevOps — русскоговорящее сообщество
Web Dev
Привет всем. Необходимо поднимать программу-неДемон, для примера скажем пусть это будет поднятие браузера Mozilla в контейнере если он упал, это общий вопрос, так что браузер тут для примера, у меня в реальности другая программа, подробности сказать не могу.

Какая есть программа linux которая следит чтобы программа была всегда запущенной? Мне нужно для моего докер-образа. Пробовал supervisord, отлично работает с демонами и прекрасно перезапускает их, но с простой программой, у которой простой запуск командой, работать не может. Также пробовал  systemd, он не спас, у него нет нормальной поддержки рестарта программы в случае если процесс упал, есть рестарт самого сервиса, но почему-то в тестах прогамму у меня он не поднимал, зато для запуска супервизора при старте контейнера прекрасно подошел.

Пробовал демонизировать запуск программы безуспешно через команду watch "команда" --chgexit оно работает в принципе, но не всегда стабильно, иногда не перезапускает, не знаю почему.
привязал ее к супервизору, если руками браузер закрыть, то он автоматом заново откроется.

[program:MozillaActivity]
command=watch "/usr/bin/firefox" --chgexit
autostart=true
autorestart=true
user=root
stopsignal=KILL
numprocs=1

Что-нибудь подскажете из решений?
Контейнер != Вм. (Поэтому не надо туда совать всякую хрень типо системд или супервизорда)
Если упал софт, контейнер перезапускается целиком его рантаймом.
источник

WD

Web Dev in DevOps — русскоговорящее сообщество
Asgoret
Контейнер != Вм. (Поэтому не надо туда совать всякую хрень типо системд или супервизорда)
Если упал софт, контейнер перезапускается целиком его рантаймом.
это тоже есть и работает, я знаю, но я организую стабильность работы внутреннего софта
источник

a6

admin 666admin in DevOps — русскоговорящее сообщество
Asgoret
@sre_hamster (пощу то, чего не постят другие и то, что можно реально отложить в избранное, поэтому посты не каждый день)
У меня такой же есть, вроде заметок, я туда тоже репощу чисто для себя, но там никого нет, как записная книжка (ml,osint,sre, инфосек всякий)
источник

A

Asgoret in DevOps — русскоговорящее сообщество
Web Dev
это тоже есть и работает, я знаю, но я организую стабильность работы внутреннего софта
И? Ответ на твой вопрос это корректное использование технологии. Если ты выбрал контейнер, значит он будет перезапускаться т.к. он спроектирован и задуман так, чтобы мог быстро умереть и быстро подняться. Таким образом, ответ на твой вопрос: твой рантайм сам все перезапустит
источник

a6

admin 666admin in DevOps — русскоговорящее сообщество
Web Dev
Привет всем. Необходимо поднимать программу-неДемон, для примера скажем пусть это будет поднятие браузера Mozilla в контейнере если он упал, это общий вопрос, так что браузер тут для примера, у меня в реальности другая программа, подробности сказать не могу.

Какая есть программа linux которая следит чтобы программа была всегда запущенной? Мне нужно для моего докер-образа. Пробовал supervisord, отлично работает с демонами и прекрасно перезапускает их, но с простой программой, у которой простой запуск командой, работать не может. Также пробовал  systemd, он не спас, у него нет нормальной поддержки рестарта программы в случае если процесс упал, есть рестарт самого сервиса, но почему-то в тестах прогамму у меня он не поднимал, зато для запуска супервизора при старте контейнера прекрасно подошел.

Пробовал демонизировать запуск программы безуспешно через команду watch "команда" --chgexit оно работает в принципе, но не всегда стабильно, иногда не перезапускает, не знаю почему.
привязал ее к супервизору, если руками браузер закрыть, то он автоматом заново откроется.

[program:MozillaActivity]
command=watch "/usr/bin/firefox" --chgexit
autostart=true
autorestart=true
user=root
stopsignal=KILL
numprocs=1

Что-нибудь подскажете из решений?
systemd => Restart=always
источник

A

Asgoret in DevOps — русскоговорящее сообщество
admin 666admin
systemd => Restart=always
В контейнер системд?
источник

A

Asgoret in DevOps — русскоговорящее сообщество
Сча забаню за вредные советы ;D
источник

a6

admin 666admin in DevOps — русскоговорящее сообщество
не надо вообще в контейнер, зачем оно в контейнере
источник

WD

Web Dev in DevOps — русскоговорящее сообщество
Asgoret
В контейнер системд?
у меня образ на базе ubuntu 20
источник

A

Asgoret in DevOps — русскоговорящее сообщество
admin 666admin
не надо вообще в контейнер, зачем оно в контейнере
Ну так он пишет, что ему в контейнере надо
источник

A

Asgoret in DevOps — русскоговорящее сообщество
Web Dev
у меня образ на базе ubuntu 20
И? Твой контейнер рантайм сам все перезапустит
источник

WD

Web Dev in DevOps — русскоговорящее сообщество
admin 666admin
systemd => Restart=always
я про это писал, это не помогло
источник

WD

Web Dev in DevOps — русскоговорящее сообщество
Asgoret
И? Твой контейнер рантайм сам все перезапустит
мне нужен внутренний перезапуск программ
источник

A

Asgoret in DevOps — русскоговорящее сообщество
Web Dev
мне нужен внутренний перезапуск программ
Тогда используй виртуалку и системд
источник

WD

Web Dev in DevOps — русскоговорящее сообщество
Web Dev
я про это писал, это не помогло
.
источник

WD

Web Dev in DevOps — русскоговорящее сообщество
систем мд также не плохо думаю бует работать с демоном, но не с простой программой которая запскается одной командой
источник

a6

admin 666admin in DevOps — русскоговорящее сообщество
Поясни плз зачем тебе такое уродство. Можно написать скрипт и ловить сигкилл или другие килы и рестартить, но смысл
источник

WD

Web Dev in DevOps — русскоговорящее сообщество
я QA тестер. мне для стабильности поддержания теста такое нужно, иногда вылетает браузер, и нельзя перзапускать контейнер, нужно быстро принять меры, соответсвенно хороший выход при негативном сценарии (вылета браузера) просто поднять его
источник

A

Asgoret in DevOps — русскоговорящее сообщество
Контейнер это 1 софт в 1 контейнере. Поэтому твоя программа должна быть единственно запущенной в контейнере. Ввиду реализации процесса запуска в случае получения exit 0|1 сам рантайм перезапустит твой контейнер, а следовательно и софт.
Запомни, контейнер это не сущность которая предназначена для долгосрочного хранения или запуска нескольких приложений. Это легковесная оболочка запуска приложения, которая быстро умирает и быстро поднимается.

Если ты хочешь, чтобы что-то рестартило твой софт используй обычные вм и системд.

Все.точка.
источник