LINUX.ORG.RU
ФорумTalks

Увольняюсь из systemd хейтеров

 


1

2

Привет, ЛОР!
Решил тут уволиться из systemd-хейтеров.

Предыстория.

Поднимали мы тут инстанс btcpay, соответственно, нужно было позаботиться о том, чтобы демоны btcpayserver с его прислужниками, а так же bitcoind, litecoind постоянно были запущены, не падали и перезапускались если вдруг что.

По-старинке решил воспользоваться supervisord, но подумал, что у нас же тут модный сустемд пропихнули везде, почему бы не ознакомиться с тем, что он предлагает?

Ну, и поехали, минута в гугле и был написан следущий юнитскрипт:

[Unit]
Description=btcpay
After=network.target

[Service]
Type=simple
Restart=on-failure
RestartSec=3
User=btcpay
Group=btcpay
WorkingDirectory=/var/btcpay/btcpayserver-1.0.3.36
ExecStart=/var/btcpay/btcpayserver-1.0.3.36/run.sh --chains btc,ltc --externalurl https://btcpay.ourdomain.name

[Install]
WantedBy=multi-user.target


И ещё один --

[Unit]
Description=bitcoind
After=network.target

[Service]
Type=simple
Restart=on-failure
RestartSec=3
User=btcpay
Group=btcpay
ExecStart=/var/btcpay/bitcoin/bitcoin-0.17.0/bin/bitcoind

[Install]
WantedBy=multi-user.target


 # systemctl enable bitcoind && systemctl enable btcpay && reboot


Выкуриваем сигаретку, пинаем сервер — опа!
Всё поднялось и работает. Если что упадёт — перезапускает.
Логи показывает по $ journalctl -u bitcoind.
Ну что ещё нужно для счастья на сервере?

#вся_суть_systemd_хейтеров

_____________________________________________________________

А вот за то, что его прибивают гвоздями к десктопному линуксу и без него, например, не работает networkmanager — это всё ещё крайне и крайне печально.

★★★★☆

Ответ на: комментарий от Deleted

:) ну, если топикстартер говорит о мониторинге состояния сервиса, то сравнивая systemd со всякими heartbeat,pacemaker,supervisord — systemd это еще вершина предсказуемости :))

mrdeath ★★★★★
()
Ответ на: комментарий от mrdeath

Да я вроде и не отрицаю ССЗБ ☺

Как можно обновлять прод без kvm под рукой? :)

Кто бы знал, что у OVH не автоматический KVM

annerleen ★★★★☆
() автор топика
Ответ на: комментарий от annerleen

Всегда сначала тестируется доступ к kvm, а потом делаются большие работы типа апгрейда системы. Ну, теперь будешь знать :)))

У меня как-то клиент полчаса в дауне был, пока его суппорт отдел учились к vpn'у подключаться дабы на kvm зайти :)

mrdeath ★★★★★
()
Ответ на: комментарий от annerleen

Особенно весело пердолить консольку в дороге, когда сигнал мобильной сети нестабильный, постоянно всё отваливается, и нужно сначала лапками завершать соединение, а потом лапками же поднимать.

man pppd, не? persist и всё такое....

Ну и WiFi, пришёл такой к кому-то в гости, хочешь подцепиться к их сети и начинаешь пердолить wpa_supplicant, вотж удовольствие -то!

Если у тебя есть wpa_supplicant, то должен быть и wpa_gui который есть часть сырцов wpa_supplicant, который прям то, что доктор прописал, с иконкой в трее и всеми возможными настройками WiFi которые могут потребоваться в гостях. И есть ещё тоже искоробочный wpa_cli, если хочется изобразить в гостях хацкера с консолькой, но чтоб самому удобно было. Просто ты опять не почитал man.

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 1)

Поднимали мы тут инстанс btcpay, соответственно, нужно было позаботиться о том, чтобы демоны btcpayserver с его прислужниками, а так же bitcoind, litecoind постоянно были запущены, не падали и перезапускались если вдруг что.

Мда. А ведь ещё совсем недавно для этого просто исправляли ошибки в падающих демонах. А теперь - насрать, лишь бы как-нибудь работало, или делало вид, что работает. И ладно бы речь о каком-нибудь хоумпейдже шла, так ведь этой хернёй применительно к процессингу платежей занимаются.

Stanson ★★★★★
()
Ответ на: комментарий от annerleen

Мой модем не поддерживает ppp / AT-команды.

Тогда у тебя должен быть обычный сетевой интерфейс wwan0. В этом случае логично просто поменять модем на что-то более адекватное, или, хотя бы, попробовать сменить прошивку на менее глючную.

ЗЫ: E392, например, мне почему-то не надо дрочить, оно просто работает месяцами в качестве резервного канала дома. Есть сигнал - в wwan0 есть интернет и всё. Правда, он в AT-команды таки умеет, хотя в моей конфигурации управляется через QMI.

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 3)
Ответ на: комментарий от EXL

Он и изучил «ещё какую-нибудь дрянь».

Но вообще-то, для полноты сравнения хорошо бы посмотреть, как то же самое делается средствами, скажем, openrc.

hobbit ★★★★★
()
Ответ на: комментарий от Stanson

Мда. А ведь ещё совсем недавно для этого просто исправляли ошибки в падающих демонах. А теперь - насрать, лишь бы как-нибудь работало, или делало вид, что работает. И ладно бы речь о каком-нибудь хоумпейдже шла, так ведь этой хернёй применительно к процессингу платежей занимаются.

И сейчас исправляют, когда могут.

Есть правильное решение, есть быстрое решение. Оба имеют право на жизнь. Правильное решение, разумеется, несопоставимо надёжнее, только полный идиот будет с этим спорить. Но для него надо:

  • добиться повторяемости ошибки, причём не только на подопытном сервере и выявить условия её возникновения;
  • запостить описание на багтрекер и ждать, пока исправят.

Даже первый пункт может оказаться очень длительным и суровым. Второй можно заменить на «исправить самим или кого нанять», но для этого нужны деньги и квалификация сильно побольше, чем на затычку с перезапуском. И для обоих нужно ВРЕМЯ.

Ах да, у нас была похожая история с проприетарным сервисом от Oracle. Там кроме затычки, вариантов просто не было, увы.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 3)
Ответ на: комментарий от mrdeath

А уж если его сравнить с поделками на баше а-ля инитскрипты сисвинита, содержимое и поведение которых в каждом дистре (а то и в каждой версии софта) может отличаться, то системд тут и вообще запредельно предсказуем.

AlexAT
()
Ответ на: комментарий от AlexAT

systemd — это отличный пример опенсорс софта. Вместо эволюции у нас всегда получается революция.

С другой стороны, когда ты открывал некоторые инит скрипты, но по телу пробегала мелкая дрожь. Народ писал такую овердизайнненую ересь, что дебажить такое мог только сам ее написавший человек, да и то, в первые полгода после написания.

Программисты никогда не ищут простых путей.

mrdeath ★★★★★
()
Ответ на: комментарий от mrdeath

systemd — это отличный пример опенсорс софта. Вместо эволюции у нас всегда получается революция.

systemd - это пример чудака на зарплате в корпорации. А «отличные примеры опенсорс софта» - это GCC и Linux: никаких революций, развитие существующих решений.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от h578b1bde

«Предсказуемый» здесь значит «который предсказуемо есть на любой системе», а не то, что ты себе там нафантазировал.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

«Предсказуемый» здесь значит «который предсказуемо есть на любой системе»

Опять fail.
https://imgs.xkcd.com/comics/standards.png

а не то, что ты себе там нафантазировал

Ну т.е. systemd сам по себе непредсказуем, ЧТД.

h578b1bde ★☆
()
Последнее исправление: h578b1bde (всего исправлений: 2)
Ответ на: комментарий от intelfx

Конечно-конечно, непредсказуем. Марш обратно в палату.

Зачем мне идти в твою палату?

h578b1bde ★☆
()
Ответ на: комментарий от tailgunner

gcc — это исключение. И к счастью не одно. linux на уровне пониже примерно тоже самое. Каждый релиз новая подсистема чего-либо. Никакой эволюции. Как и во всех опенсорс «решениях» вечно ломающиеся api/abi повcюду. linux, libc, gtk, qt, apache, список можно продолжать до бесконечности. Оно то кушать можно, но иногда хочется сходить в ресторан и поесть в радость.

mrdeath ★★★★★
()
Ответ на: комментарий от mrdeath

вы параноик, если это баг для CVE

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-1000082

Это рукожопство админа

И ещё одно доказательство тотальной предсказуемости systemd. Конечно-конечно, это рукожопство админа, ведь неумеющий в rm Лёня — бох.

h578b1bde ★☆
()
Ответ на: комментарий от mrdeath

systemd — это отличный пример опенсорс софта. Вместо эволюции у нас всегда получается революция.

systemd - это пример чудака на зарплате в корпорации. А «отличные примеры опенсорс софта» - это GCC и Linux:

linux на уровне пониже примерно тоже самое. Каждый релиз новая подсистема чего-либо.

Расскажи подробнее о революциях в ядре каждый релиз.

во всех опенсорс «решениях» вечно ломающиеся api/abi повcюду. linux, libc, gtk, qt, apache

Расскажи о том, как вместо libc написали новую, несовместимую libc.

иногда хочется сходить в ресторан и поесть в радость.

И что это за радостный ресторан? Расскажи о нем.

tailgunner ★★★★★
()
Ответ на: комментарий от h578b1bde

админ запустил сервис, и не запустил ps uax чтоб посмотреть от какого пользователя он стартанул? для того чтоб юнит файл добавить, нужно уже быть рутом. секьюрити аналитики они такие аналитики.

mrdeath ★★★★★
()
Ответ на: комментарий от tailgunner

Расскажи подробнее о революциях в ядре каждый релиз.

напомнить сколько там шедулеров уже поменялось? И сколько раз апи/аби ломались? Написали мне модуль для ядра, через полгода апгрейдов я уже патчил 3 раза модуль чтоб его собрать с новым ядром.

Расскажи о том, как вместо libc написали новую, несовместимую libc.

аби ломаный с каждым релизом, этого тебе мало? Почему под виндой можно запустить far, собранный 10 лет назад, а под линуксом бинарник превращается в тыкву уже через год?

И что это за радостный ресторан? Расскажи о нем.

увы, было бы что-то лучше, я бы уже там был. Но из-за отстутствия лучшего, не значит что можно что-то улучшить.

mrdeath ★★★★★
()
Ответ на: комментарий от mrdeath

админ запустил сервис, и не запустил ps uax чтоб посмотреть от какого пользователя он стартанул?

Напомню, речь шла о предсказуемости systemd. В данном случае главный разработчик этой поделки сказал мол непредсказуемое поведение — это так и было задумано, после чего закрыл тикет с not-a-bug. И да, поведение, при котором сервис стартует с привилегиями суперпользователя вместо указанного в конфиге юзера — это таки уязвимость, как бы фанатикам системдыры не хотелось обратного.

для того чтоб юнит файл добавить, нужно уже быть рутом. секьюрити аналитики они такие аналитики.

Это не отменяет того факта что systemd — непредсказуем, а Лёня — некомпетентен.

h578b1bde ★☆
()
Ответ на: комментарий от h578b1bde

начнем с того, что «0day» — это невалидный логин. Если кто-то админит свои сервера через *опу — это его личное дело. То, что это баг — факт, нормальным было бы просто не стартовать сервис. То что из этого высосали CVE хейтеры — это дебилизм.

> Это не отменяет того факта что systemd — непредсказуем, а Лёня — некомпетентен.

systemd и хорош и плох одновременно. Плохо то, что уж слишком много они решили переписать. systemd как инит — отличная штука. Оно тебе запустит набор софта при появлении/пропадании запустит перед/после суспендом. у тебя есть приличный keepalive, статус, репортинг, зависимости.

Ну а за переписывание resolvconf, конфигураторов сети, впихивания своих логеров итд — это конечно перебор.

Я не сильно переживаю за конфигурирование сети ибо все сегодняшние конфигураторы — дикий отстой. Может быть хоть сейчас что-то измениться к лучшему.

В общем давайте быть объективными :)

mrdeath ★★★★★
()
Ответ на: комментарий от mrdeath

начнем с того, что «0day» — это невалидный логин

Кто сказал?

То, что это баг — факт, нормальным было бы просто не стартовать сервис. То что из этого высосали CVE хейтеры — это дебилизм.

Дебилизм — это реакция Лёни Нотэбага, за что он даже в соответствующей номинации Pwnie Awards выиграл. И это далеко не единичный случай проявления его хронической неадекватности.

В общем давайте быть объективными

Объективно без агрессивного пропихивания этой поделки во все щели с клоунадами вроде голосования до победного как у дебиана она бы просто заняла свою нишу за счёт тех кому она действительно нужна и не мешала бы остальным. А так пусть эти самые пропихиватели скушают ушат помоев, вместе с разработчиками.

h578b1bde ★☆
()
Ответ на: комментарий от h578b1bde

Кто сказал?

annelion@westfalia ~> sudo adduser 0day
[sudo] password for annelion: 
adduser: Please enter a username matching the regular expression configured
via the NAME_REGEX configuration variable.  Use the `--force-badname'
option to relax this check or reconfigure NAME_REGEX.
annerleen ★★★★☆
() автор топика
Ответ на: комментарий от h578b1bde

Дебилизм — это реакция Лёни Нотэбага, за что он даже в соответствующей номинации Pwnie Awards выиграл.

Дебилизм — это второе название должности сегодняшних секьюрити аналитиков для которых куки доступные из яваскрипта — это уязвимость, а добавение x-content-type-options: nosniff — это защита от хакеров.

Лёня — один из немногих который добавил свое имя в историю создания линукса создав больше одного мейнстримного приложения. Только за это его уже можно уважать. А баги они есть у всех. Это конечно не оправдывает его поведение, но тем не менее.

mrdeath ★★★★★
()
Ответ на: комментарий от h578b1bde

ну если пошло на неадекватность ответов, то во многих багтраках царит атмосфера дружбы. девелоперы libc и iceweasel тоже в свое время хорошо отличились

mrdeath ★★★★★
()
Ответ на: комментарий от mrdeath

Лёня — один из немногих который добавил свое имя в историю создания линукса создав больше одного мейнстримного приложения.

Когда-то была одна ОС, называлась виста. Тогда она была весьма современной и мейнстримной, все новые ноуты шли с ней. Казалось бы, ей светит безоговорочный триумф. Но внезапно всё оказалось совсем наоборот, а многие пользователи почему-то до сих пор люто её ненавидят.

Это я к тому что агрессивно навязываемая и проталкиваемая во все щели недоделка с явными проблемами благодаря этому проталкиванию может стать мейнстримом, только вот отношение пользователей к такому мейнстриму вполне закономерно.

h578b1bde ★☆
()
Ответ на: комментарий от mrdeath

ну если пошло на неадекватность ответов, то во многих багтраках царит атмосфера дружбы

Совершенно пофиг на дружбомагию и розовых поней. Чтобы закрывать явные баги с пометкой not-a-bug — нужно хорошенько упороться.

h578b1bde ★☆
()
Ответ на: комментарий от t184256

а ты кто вообще, чтобы за тобой следить?

Я не сд-положительный, а ты?

h578b1bde ★☆
()
Ответ на: комментарий от hobbit

Но вообще-то, для полноты сравнения хорошо бы посмотреть, как то же самое делается средствами, скажем, openrc.

Да точно так же, даже компактнее. С тем отличием, что без cgroups оно теряет процессы, а поддержку cgroups там нацарапали левой пяткой, state machine кривая и в результате оно всё равно теряет процессы. А так, конечно, простой, милый и приятный openrc – наше всё, не то что это монструозное поцтероподелие.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от mrdeath

Лёня — один из немногих который добавил свое имя в историю создания линукса создав больше одного мейнстримного приложения.

Герострат тоже своё имя в историю добавил.

torvn77 ★★★★★
()
Ответ на: комментарий от mrdeath

То, что это баг — факт, нормальным было бы просто не стартовать сервис

В таком случае, нормальным было бы не давать создавать пользователя с таким именем. Но, раз дают создавать, а создавалка появилось намного раньше системдыры, значит ненормальность заключена в системдыре, а не где-то ещё. Тут, что от рута стартует, что, как ты предлагаешь «не стартовать вообще» — эскобар.жпг.

deep-purple ★★★★★
()
Ответ на: комментарий от Deleted

Попёрся от слова «надёжнее». ИМХО, у тебя просто опыта маловато. И сервак небось рядом ;) А был бы он далеко, да заперт...

Чувак, я прямо очень хочу услышать эту историю. Делись своим большим опытом.

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