
Dmitry
23.10.2016
10:20:33
Но это не путь хрыча

Старый
23.10.2016
10:20:52

Dmitry
23.10.2016
10:21:05

Google

Dmitry
23.10.2016
10:21:11
Конкретнее
Вот почему нетстат деприкейт я могу нагуглить

Vladimir
23.10.2016
10:21:33

Старый
23.10.2016
10:21:51

Vladimir
23.10.2016
10:22:02

Dmitry
23.10.2016
10:22:07
А

Vladimir
23.10.2016
10:22:12
и впихнули десктопный системд в серверную ос

Dmitry
23.10.2016
10:22:18
Ну если он в рхел то пиздец
Пошел везде ставить
Это довод в стиле лора

Vladimir
23.10.2016
10:22:59
поэтому он в rhel 7?
системд в рхел7 это источник большей части проблем, потому что он ломает существующие кейсы, некорректно работает на ряде оборудования и т.п.

Старый
23.10.2016
10:23:11

Vladimir
23.10.2016
10:23:24

Google

Старый
23.10.2016
10:23:34

Vladimir
23.10.2016
10:23:35
даже не мной созданные

Dmitry
23.10.2016
10:24:27
С системд зачастую виноваты разрабы, которые не пишут скрипты

Vladimir
23.10.2016
10:24:27
в systemd этого сделать нельзя от слова совсем.

Dmitry
23.10.2016
10:24:32
Или пишут жопами

Kirill
23.10.2016
10:24:46

Старый
23.10.2016
10:24:58

Dmitry
23.10.2016
10:25:13

Старый
23.10.2016
10:25:34

Dmitry
23.10.2016
10:25:37

Vladimir
23.10.2016
10:25:43
@erzent расскажи как.
@erzent в системд restart это последовательное stop -> post-stop -> pre-start -> start
stop нельзя отменить
by design

Dmitry
23.10.2016
10:26:29
Врапер писать надо
Но по хорошему сам софт должен это проверять
Норм софт с невалидной конфигой шлет нах

Vladimir
23.10.2016
10:27:39

Старый
23.10.2016
10:27:56
@erzent расскажи как.
мы писали для софтины, что она перед запуском должна проверить свою хеш сумму прямо в инити системд

Google

Vladimir
23.10.2016
10:28:12

Dmitry
23.10.2016
10:28:15
Ааа
Я понял

Alexander
23.10.2016
10:28:30

Vladimir
23.10.2016
10:28:33
если оно не умрет за таймаут то системд в логах скажет что они считают что наверное так и должно быть и начнет выполнять дальше шаги

Старый
23.10.2016
10:28:56

Vladimir
23.10.2016
10:29:08
но как только таймаут пройдет, софтине прилетит в морду SIGKILL

Alexander
23.10.2016
10:29:20
ещё можно отдельный сервис и туда эту чекалку при выключении
и зависимость

Vladimir
23.10.2016
10:29:32
если поменять SIGKILL на что-то еще или выключить, то оно еще подождет и скажет что оно сдается, считает это нормальным
и пойдет стартовать демон заново

Vladimir
23.10.2016
10:29:50
при этом демон перейдет по мнению системд в статус stopped
а процесс останется висеть

Alexander
23.10.2016
10:31:31
ну вот можно сделать service.target и к нему два check-app-service-config.service и app-service.service
один за другим (прописать там After= )
это как альтернатива ExecStop="conftest && kill"
и делать рестарт таргета, а не сервиса

Vladimir
23.10.2016
10:32:22

Google

Vladimir
23.10.2016
10:32:47

Alexander
23.10.2016
10:34:00
если в app-service.service написано Requires=check-app-service-config.service , то по идее он не должен запускать его
или не Requires а что-то другое, возможно?
там что-то такое было, я сильно не вникал

Vladimir
23.10.2016
10:34:29
@lorddaedra давай представим допустим nginx (пример не очень хороший, потому что там альтернативным способом проблема решается). Ты ставишь новую версию
Чтобы обновить версию нужно делать restart

Alexander
23.10.2016
10:35:39
вот эти моменты через systemd криво решаются, да

Vladimir
23.10.2016
10:35:45
но ты не хочешь уронить сервис если по какой-то причине конфиг оказался невалидным.
поэтому нужно проверить конфиг и сделать рестарт

Admin
ERROR: S client not available

Vladimir
23.10.2016
10:36:02
но у системд нет PreStop
в nginx это решается через скрипты для апгрейда

Alexander
23.10.2016
10:36:19
видимо, это нужно делать скриптом

Vladimir
23.10.2016
10:36:22
и делать релоад вместо рестарт
что решает не все кейсы, но их большую часть

Alexander
23.10.2016
10:37:50
я не знаю, как без скриптов тут гибко настроить systemd, мне бы хотелось, чтобы этот функционал появился в новых версиях
у самого нечто подобное было

Vladimir
23.10.2016
10:38:30
просто кажется тут даже два сервиса не помогут

Google

Roman
23.10.2016
10:38:30
А если конфиг не валидный и рестарта не произошло. Дальше то что? Бинарник обновился уже.

Vladimir
23.10.2016
10:38:58

Pavel
23.10.2016
10:39:02

Vladimir
23.10.2016
10:39:20
сервис со старым конфигом в старой версии продолжает работать

Pavel
23.10.2016
10:39:33
ты можешь руками удалить любое правило и добавить новое в любое место таблицы фильтра

Roman
23.10.2016
10:39:33

Старый
23.10.2016
10:39:46

Vladimir
23.10.2016
10:39:49

Pavel
23.10.2016
10:40:41

Vladimir
23.10.2016
10:40:59
как зафейлившийся паппет ран или если кто-то через pssh/salt дергает команды или еще каким образом

Pavel
23.10.2016
10:41:32

Vladimir
23.10.2016
10:44:03

Dmitry
23.10.2016
10:45:49
Ну инструмент относительно свежий и развивается

Vladimir
23.10.2016
10:46:06

Старый
23.10.2016
10:46:35

Vladimir
23.10.2016
10:46:54

Старый
23.10.2016
10:47:24
нет, помогут твой старый конфиг преобразовать в то что нужно иниту системд

Vladimir
23.10.2016
10:47:58

Старый
23.10.2016
10:48:28
у меня была задача, чтобы если сервис после моих изменений не запускался, он не перезагружался
мне в 2014 помогли это сделать для федора
это делалось в системд ините
но как именно я не помню уже