LINUX.ORG.RU

Что умеет systemd?

 , ,


0

1

Вчера случайно заметил, что время рассинкалось со всемирным аж на 15 секунд. Оказалось, ntpd не запущен — причём нет и сервиса соответствующего, непонятно, кто его вообще до этого пускал. Вынес и заменил systemd-timesyncd, который не запускался из-за наличия ntpd.

Что ещё можно поручить systemd? Я хорошо разобрался с уровнем ядра и его модулей, одно время даже собирал руками, но забросил, ибо впадлу обновлять конфиг, хоть и нужно. Иксы полностью под контролем. Но промежуточный уровень — всякие там сервисы — до сих пор во многом terra incognita. Точнее, я вычитываю иногда, что там есть, ненужности всякие типа CUPS и NM отключаю, но после апдейтов оно всё равно слетает. Хотелось бы более полной картины, кто и зачем там не нужен, особенно всякое связанное с сетью. Хотя с учётом разношёрстности всего этого дела — наверное, слишком много хочу.

На systemd перешёл задолго до того, как Debian-овцы начали его пропихивать. Но профитов с этого, кроме более красивого лога загрузки, гибкого systemctl и systemd-fsck, так толком и не заимел.

Nothing new? Что ты ещё ждёшь от солянки-монолита полу-доделанных NIH-сервисов?

It would be init-system, they said.

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

Тред и не про инит. Тред про прослойку между инитом и иксами. Которую я хочу полностью осилить и/или заменить сисямдой.

bodqhrohro_promo ()

сегодня впервые пригодился, пришли очередные обновы на sid, после перезагрузки ошибка запуска udisks2.service, вроде все пашет - но ошибка красным на старте режит глаз...

systemctl --failed
так и есть
  UNIT            LOAD   ACTIVE SUB    DESCRIPTION                             
● udisks2.service loaded failed failed Disk Manager
единственный выход
sudo systemctl disable udisks2.service
и теперь на старте все по феншую...

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

не работает — не нужно!

оно сцука переодически пыталось стартануть во время работы системы - пришлось закрепить результат намертво

systemctl mask udisks2.service

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

It would be init-system, they said.

What if I told you, Morpheus never said «What if I told you»?

Зачем распространять мифы? Systemd изначально планировался как основа системы. Поэтому он и называется systemd, а не launchd.

https://web.archive.org/web/20100510005006/https://www.freedesktop.org/wiki/Software/systemd/

systemd System and Session Manager

https://web.archive.org/web/20100503220908/http://0pointer.de:80/blog/projects/systemd.html

systemd starts up and supervises the entire system (hence the name...).

Можно как угодно относиться, но зачем факты перевирать-то? Если ты это от кого-то услышал, и теперь повторяешь, это уже не тот человек выдумками занимается, а ты. Проверяй факты.

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

Systemd изначально планировался как основа системы. Поэтому он и называется systemd, а не launchd.

А PulseAudio планировался как пульсирующий звук, отсюда и пыщ-пыщ-аудио.

ashot ★★★ ()

А ты умнеешь, хитреешь, растёшь. Даже аватарку с поней поставил. Самый качественный и тонкий вброс за последние несколько лет, наверное.

Что ещё можно поручить systemd?

(Пере)Запуск сервисов/демонов, работа по расписанию (таймеры), настройка и управление сетью (с некоторой прослойкой в виде костылей скриптов). Пока это всё, что оно может нормально. Рулить гуйнёй оно толком не может, для этого надо очень сильно тужиться, и всё равно будут проблемы.

В этом плане мне нравится как устроено во FreeBSD — всё предельно костыльно просто, даже можно сказать примитивно, и поэтому там всё стабильно работает и жрать не просит. Даже почту с отчётами шлёт искаропки.

r3lgar ★★★★★ ()

Я наоборот NM включил, система работает с ним как-то лучше (правда interfaces всё равно обслуживает одну карточку).
Вот systemd-networkd пока точно не стоит использовать и он вроде даже не предполагается быть заменой NM. CUPS пускай работает, жалко, что ли?

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

systemd-networkd написан лишь для того, чтобы было удобно в LXC пихать только systemd и ни чего более (примерно так, по факту, пруфов не дам).

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

Да, я тоже примерно так понимаю причину его создания.

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

Вот systemd-networkd пока точно не стоит использовать и он вроде даже не предполагается быть заменой NM.

Второе — да, первое ­— нет. С чего ты взял? networkd — это прямая замена твоим interfaces, и с этой точки зрения он вполне хорошо работает. NM же решает другую задачу.

intelfx ★★★★★ ()

Вчера случайно заметил, что время рассинкалось со всемирным аж на 15 секунд.

просто ты тормоз. man сто.

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

С чего ты взял?

Я на irc-канале вскользь об этом спрашивал, мне сказали, что это пока не стоит использовать если точно не знаешь зачем оно нужно, и дебиан поа на эту штуку не переходит.
Т.е. оно со временем в дебиане заменит ifupdown схему (а в какой-нибудь centos и того раньше)?

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

networkd — это прямая замена твоим interfaces

надо мне на него посмотреть еще раз, а то в прошлый раз он мне показался даже более куцым чем interfaces

mandala ★★★★ ()
Ответ на: комментарий от i-rinat

Просто launchd было уже занято. А об startd можно язык сломать, это похуже months.

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

работа по расписанию (таймеры)

Крон не юзаю, только at иногда.

настройка и управление сетью

Модем подрубаю руками, остальное вообще эпизодически: эӫернет через ifconfig, вафлю чуть переделанным скриптом от conformist. Что тут сисямда предло́жит?

Рулить гуйнёй оно толком не может

Гуйню слимом пускаю. Причём он заброшен давно, ещё и Debian-овцы сломали юнит недавно — то запускалось успешно раза с пятого, потом вообще в бутлуп ушло, пришлось пердолить кастомный юнит. Короче, пора валить, но хз, куда.

для этого надо очень сильно тужиться, и всё равно будут проблемы

Ты про systemd --user?

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

MM умеет явно назначать конкретный презет соединения конкретному модему?

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

Ох не знаю, в GUI ничего такого не вижу. Возможно есть какая-нибудь uuid-магия, в конфигах, но скорее всего нет.

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

Ну вот в этом и есть фатальный недостаток MM. Что он натворит, если я подключу одновременно модем и телефон?

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

У меня автоматом вайред коннекшен создал и соединился)))
Понимаю что дальше может последовать вопрос про два модема, но у меня только один.
Я на самом деле совсем недавно на NM свичнулся и не знаю про него всего, раньше угорал по interfaces и wvdial. Так-то няшно всё стало, удобно.

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

Крон не юзаю

Ну, это ты зря. Кстати, cron таки удобнее, чем писать ini-файлы на каждую задачу.

Что тут сисямда предло́жит?

На самом деле ничего, кроме поднятия интерфейса. На даже тут я бы выбрал (на самом деле даже реализовал) связку udev+скрипты. А вот Wi-Fi у меня поднимается поднятым через systemd демоном dhcpcd, который хуками пинает wpa_supplicant.

Гуйню слимом пускаю.

На самом деле не им, он только запускалка сессии.

Причём он заброшен давно

Но при этом он хорошо и стабильно выполняет свою задачу.

ещё и Debian-овцы сломали юнит недавно

Дебианопроблемы, у меня в генте всё прекрасно работает уже много лет.

пора валить, но хз, куда

Гента, фряха, слака.

Ты про systemd --user?

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

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

Ну, это ты зря

А зачем он мне? На винде я планировщиком запускал раз в неделю антивирус и дефрагментатор. Тут антивирус не нужен, а дефрагментатора ни для ext3, ни для ntfs нет.

На самом деле ничего, кроме поднятия интерфейса

Ну это имеет смысл, в связи с закапыванием ifconfig, но чем оно лучше ip будет?

На самом деле не им

Ну да, слим запускает скрипт.

у меня в генте всё прекрасно работает уже много лет

В генте и GTK+1 есть.

Гента, фряха, слака

Я ж не ламер, чтоб систему переустанавливать.

вне зависимости от погоды на Марсе окружения

Так у меня и нет никакого готового окружения.

потому отловить графическую сессию и запустить графическое приложение в ней можно только через жопу через жопу.

DISPLAY=:0 не конает?

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

единственный выход
sudo systemctl disable udisks2.service
и теперь на старте все по феншую...

И че, как жизнь без udisks? Роллинг этот ваш конечно рулез, ниче не скажешь. Никакой девки не надо, трахайся с компом хоть каждую ночь.

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

это прямая замена твоим interfaces, и с этой точки зрения он вполне хорошо работает.

interfaces, конечно, сам кривоват немного. Но networkd, пока, не лучше. Он присвоенные ip-адреса за собой чистить научился? Или хотя бы маршруты?

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

А зачем он мне?

Затем, что многие вещи ручками каждый день массировать как-то накладно.

чем оно лучше ip будет?

Оно не лучше и не хуже, так как не заменяет, просто автоматизирует это дело (при условии, что у тебя драйвер сетевой карты инициализируется раньше сервиса).

Ну да, слим запускает скрипт.

Так любой дурак DM может.

В генте и GTK+1 есть.

Уже нет. И достаточно давно.

Я ж не ламер, чтоб систему переустанавливать.

apt-get install portage && emerge -NDuv world?

Так у меня и нет никакого готового окружения.

Я имею в виду не DE, а переменные. Причём из одного pty/tty/shell ты не узнаешь значения переменных соседнего/родительского/дочернего, что сильно усложняет дело.

DISPLAY=:0 не конает?

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

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

ручками каждый день массировать

Так у меня такого и нет, чтобы именно регулярно.

просто автоматизирует это дело

Автоматизирует и interfaces, но не нужен, ибо см. выше.

Так любой дурак DM может

Ну тогда и сисямда осилит?

apt-get install portage && emerge -NDuv world?

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

а переменные

А чо переменные? Они ж в .bashrc.

А если графическая сессия принадлежит другому пользователю (в том числе руту)

Нисидипадрутам!!!111адинадинстоадин

А если переменная назначена, но графическая сессия не запущена?

То не взлетит, конечно же. И чо?

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

А какой дистрибутив можно назвать эталонным в плане применения systemd? В CentOS не припомню networkd. Убунту с дебианом совсем недавно перешли, там наверняка куча проблем будет. Вроде RH пилит systemd, тогда Fedora остаётся? Или такого нет и надо ждать какой-нибудь RHEL 8?

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

Ну тогда и сисямда осилит?

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

Возможно. Но чревато.

Тогда лёгким движением make install преврати свой линукс в слаку!

А чо переменные? Они ж в .bashrc.

DISPLAY ты тоже в .bashrc пропишешь? Оно в dbus постучится, ему там покажут письку и оно упадёт в обморок.

Нисидипадрутам!!!111адинадинстоадин

Рута я привёл как пример того, как тебе могут показать письку при отсутствии прав (ты не сможешь запустить графическое приложение от своего юзера в сессии рута).

И чо?

И то, что в качестве автозапуска для гуйни оно не годится.

r3lgar ★★★★★ ()

ну вот к примеру прально запускать nginx с CAP_NET_BIND_SERVICE на процессе

сейчас в скрипте запуска nginx костыль от предыдущих систем запуска для того чтобы нжинкс мог слушать порты ниже 1024
ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;'

а по уму надо прописать
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
в .service ибо системд умеет capabilities

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

MM не умеет никаких соединений. А NM — да, умеет.

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

ему пофигу до сессий

И шо, до сих пор ни один DM с ним не интегрируется? Всего-то, казалось бы, активировать таргет при логине...

лёгким движением make install преврати свой линукс в слаку!

Ентого у меня давно хоть отбавляй. Собственно, я никогда пакеты и не собирал, ибо на фига?

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

И шо, до сих пор ни один DM с ним не интегрируется?

Может и интегрируется, я не копал.

Всего-то, казалось бы, активировать таргет при логине...

Ещё раз повторю: юниты стартуют ДО сессий, сессий может вообще не быть.=

r3lgar ★★★★★ ()

Про поджог жоп уже говорили?

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

Убунту с дебианом совсем недавно перешли, там наверняка куча проблем будет.

С дебианом по мне вообще какой-то ад сейчас. Был пакет ifupdown, который содержал доки соответствующие утилиты. В 9-м туда всунули конфиг для udev, чтобы интерфейсы поднимать и какой-то костыль/аналог systemd-networkd-wait-online.

Так-то без ifupdown с одним systemd-networkd всё поднимается и работает.

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

NM вообще в одну харю может сетью рулить? У меня на кубитраке с armbian, который до debian 9 обновил, сеть через раз поднимает. Точнее ipv6 есть, а ipv4 через раз.

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

юниты стартуют ДО сессий

Юниты, поставленные на таргет, без таргета не стартуют, аллё.

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

Юниты, поставленные на таргет, без таргета не стартуют, аллё.

Ага, ты ещё скажи, что всё, что требует graphical.target, стартанёт в графической сессии, лол.

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

Чё сразу graphical. Можно, по идее, сделать кастомный таргет сделать, который будет активировать DM (хоть тот же слим), а на таргет уже юниты иксовых приложений повешать.

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

будет активировать DM

Вот только DM поднимается от рута.

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

И шо, su username не конает?

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

r3lgar ★★★★★ ()

Удобно использовать для веб-приложений.
Написал юнит - и больше никаких приблуд для старта-рестарта не нужно + лог.

ritsufag ★★★★★ ()
Последнее исправление: ritsufag (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.