Magistr
пасиб
Dmitrii
Например аттачинг нод в elb не идемподентен
Dmitrii
Создание elb тоже
sexst
там какие-то совсем упоротые ребята
На самом деле охренительно удобно. Во избежание непоняток нужно явно указывать в юнит-файле type=notify, тогда systemd будет ждать выставления статуса и keepalive от приложения. А в приложении парой строчек организуется надежная как титановый лом проверка старта и рестарт при зависании. Старый способ на этом фоне выглядит несколько костыльно и громоздко.
Вообще я года полтора назад почитал доки с офсайта systemd и внезапно обнаружил что на самом деле там дохрена клевых штук, да и сделано все весьма просто и логично.
Andrew
ну да, изобрести собственный протокол и всунуть его чуть ли не в ядро для простановки статуса — это просто и логично
Vladimir
Vladimir
Как и все у поттеринга - хорошие идеи но их нужно брать и делать имплементацию с нуля чтоб оно работало
sexst
Если сравнивать со старым стандартом написания демонов, то там все вообще через хренпоймичто тогда
Vladimir
Vladimir
У нас есть рестарт как стоп-постстоп-престарт-старт
Vladimir
Но стоп выполняется не всегда
Vladimir
И прервать стоп нельзя
sexst
Проблема в том что мейнтейнеры сачто документацию не читают и пишут хрень в юнит файлах
Andrew
вот лучше бы вместо этого примерчик на питоне написали какой
Vladimir
Vladimir
Баг на багзилле у них долго уже висит
sexst
Примеры есть. Блин, даже в C это полдесятка строк вызовов к api systemd
Vladimir
Vladimir
Не более
Vladimir
Прервать стоп нельзя
Vladimir
Ни через апи ни в юнитах
Andrew
Vladimir
Никак
Vladimir
Стоп экшн из за бага может не отрабатывать
Vladimir
Вообще никогда
Dmitrii
https://i.kinja-img.com/gawker-media/image/upload/s--Awy7VWZ7--/c_fit,fl_progressive,q_80,w_636/1262497171641241489.jpg
Dmitrii
Скоро это можно будет переделать под systemd
Vladimir
Vladimir
Который там с самого начала есть
Vladimir
В редких случаях может продалбывать события в результате чего экшн не обработается никогда
Vladimir
Мелочь, но есть
Andrew
вместо того, что бы была возможность указать какой-то healthcheck-скрипт, с которым уже через stdin/stdout общаться
Andrew
или вообще полить и через exit-код смотреть
sexst
А вот это уже реально изврат
Andrew
но ок, если хочется реактивности — пускать этот скрипт и смотреть на стдаут
Andrew
хехе
Andrew
это не изврат
Andrew
это ТАК НАДО
Andrew
когда есть приложение
Andrew
а есть супервизор
sexst
Мсье, у вас стойкая стадия отрицания.
Andrew
и приожение, внезапно, умеет пускаться разными супервизорами
Vladimir
@hogstaberg просто поттеринга оовнокодер редкий, поэтому пока он в проекте там будут очень веселые баги и спонтанные смены поведения
Vladimir
Как уйдет, ща годик говно причешут
Vladimir
И можно будет пользоваться без фейспалмов
sexst
Вы в приложении можете поинтересоваться не нужно ли писать на какой сокет и дальше решать как стартовать. Нет никакой строгой привязки к системе запуска вообще т.к. если сокет никто на запрос не выдаст, то значит от приложения никто ничего не ждет, стартуем "классически". Общаться через сокеты это общепринятая норма в системе.
Andrew
Andrew
почему то даже гоферы из докера это понимают и нормально дизайнет хелфчеки
sexst
Дыг да, кто же без багов?) Особенно на таких масштабных вещах. Я и на других системах запуска баги встречал.
Andrew
а эти упоротые считают, что каждый постгрес должен впилить в себе в аппу поддержку их дурацкого протокола
Vladimir
Vladimir
Vladimir
Притом что багу там пара лет уже
sexst
Обычный сокет из кернел api используется там.
sexst
Не хотите удобных вызовов через api, не надо, обращайтесь к голому сокету.
Andrew
$NOTIFY_SOCKET environment variable. If the first character of $NOTIFY_SOCKET is "@", the string is understood as Linux abstract namespace socket. The datagram is accompanied by the process credentials of the sending service, using SCM_CREDENTIALS.
Andrew
и что что обычный? это системдешный сокет и писать туда надо в формате системд
Vladimir
@hogstaberg вопрос всегда в том чем система х лучше чем у
Vladimir
Системд решает ряд задач абсолютно бесполезных на сервере
Vladimir
Парочку полезных
Vladimir
И ломает парочку полезных
Andrew
я вообще не понимаю как можно защищать такой API ) требовать от приложения заточиться под конкретного супервизора
Andrew
про "в общем системд" тоже особо что тут говорить
Andrew
https://www.agwa.name/blog/post/how_to_crash_systemd_in_one_tweet
Vladimir
Оно не делает жизнь лучше в целом. Инит скрипты и их написание занимают малый процент жизни девопса
Vladimir
Как и ребуты железок
Vladimir
Поэтому всем и плевать на апи их и сокеты
Vladimir
Впрочем всем также плевать системд у них на сервере или апстарт или голый sysvinit
Vladimir
Хоть скрипты на бизибоксовом аше
Sergey
когда у тебя сервак с рейд массиивом на так 4 дестяка венотв и 60 рейд, короче пока там все провернется на уровне железа, система инициализации вообще мало интересует, правильно сказали, хоть на шеле
sexst
Блин, все очень холиварно. Старт-стоп скрипты раньше были именно скриптами и часто точились под определенное приложение. А тут попытка все к одному виду привести.
Дело не только в инит скриптах, системд обеспечивает огромную кучу всего помимо запуска процессов.
Вообще если раньше фичи вкручивали на всех парах т.к. стояла задача захватить первенство, то сейчас уже баги убирают усиленно, что радует.
Vladimir
sexst
sexst
Им лет черт знает сколько, системд еще не пахло даже