LINUX.ORG.RU

Что то поломалось в D-bus или скорее в systemd

 ,


0

2

Что то поломалось.
Так вроде все работает, все что должно загружатся - загружается. Случайно наткнулся вот на что

#systemctl list-units
Failed to get D-Bus connection: Неизвестная ошибка -1


но при этом
# systemctl list-unit-files | grep dbus
dbus-org.freedesktop.Avahi.service enabled
dbus-org.freedesktop.hostname1.service static
dbus-org.freedesktop.locale1.service static
dbus-org.freedesktop.login1.service static
dbus-org.freedesktop.machine1.service static
dbus-org.freedesktop.timedate1.service static
dbus.service static
dbus.socket static

# ps -A | grep dbus
2986 ? 00:00:00 dbus-daemon

ls /run/dbus/ -l
итого 4
-rw-r--r-- 1 root root 5 фев 18 01:02 pid
srwxrwxrwx 1 root root 0 фев 18 01:02 system_bus_socket


пока вроде система работает, но видится мне что боком вылезет рано или поздно. Поскольку не часто тыкаюсь в системд то в какой момент поломалось - не знаю. За два последних дня много чего было наставлено, удалено и снова наставлено.
Я конечно попробовал переставить/переконфигурировать (dkpg-reconfigure) пакеты systemd и dbus
Куда бы потыкать что бы понять причину? А то вот понабилось свой юнит подключить, а systemctl не пашет.

Ах, да:
uname -a
Linux HomeNAS 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt4-3 (2015-02-03) x86_64 GNU/Linux


debian jessie




Последнее исправление: cetjs2 (всего исправлений: 2)

Мм. Глупый вопрос: система вообще загружается с использованием systemd или нет?

  • пакет systemd-sysv установлен?
  • директория /run/systemd/system присутствует?

( redgremlin)

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

переустанови

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

#aptitude search systemd-sysv
i systemd-sysv

#ls /run/systemd/ -l
итого 0
drwxr-xr-x 2 root root 80 фев 18 11:10 inhibit
drwxr-xr-x 2 root root 60 фев 18 01:56 seats
drwxr-xr-x 2 root root 80 фев 18 01:57 sessions
drwxr-xr-x 2 root root 60 фев 18 01:57 users

для пробы
:/run/systemd$ sudo mkdir system
#sudo systemctl
Failed to list units: No such method 'ListUnitsFiltered'

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

:/run/systemd$ sudo mkdir system

Это было делать бессмысленно. Как бы сама по себе директория ничего не исправит; её наличие — это признак запущенного systemd.

Ок, последняя проверка (от рута).

readlink /proc/1/exe

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

ну в общем то и не наделся починить путем создания директории. Зато ошибку уже другую получил :)

а по запущенности системд линк есть.
#readlink /proc/1/exe
/lib/systemd/systemd

griz
() автор топика
dbus-send --system --dest=org.freedesktop.DBus --type=method_call --print-reply /org/freedesktop/DBus org.freedesktop.DBus.ListNames

Отрабатывает нормально? systemd1 присутствует?

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

dbus-send --system --dest=org.freedesktop.DBus --type=method_call --print-reply /org/freedesktop/DBus org.freedesktop.DBus.ListNames

«„Не нужно шелл-простыней“, - говорили они»

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

Кто «они»? D-bus никогда и никем не позиционировался, как протокол, удобный для работы в шелле, а dbus-send никогда не позиционировалось, как daily-use утилита.

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

D-bus никогда и никем не позиционировался, как протокол, удобный для работы в шелле

systemd должен был спасти нас от шелла, а пока что я вижу, что ради диагностики проблем в нем приходится куячить DBus-команды из шелла.

Кстати, именно такие завязки называются «кривой архитектурой».

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

systemd должен был спасти нас от шелла

И он это сделал. Шелл-портянки из инита ушли.

ради диагностики

Ради диагностики чего только не приходится выполнять. Далеко ходить не будем, заглянем в соседний раздел — Настройка bonding (комментарий)

nc -l -p 5001 &
tcpdump -i any tcp and dst host 10.0.0.1 and src host 10.0.0.2
Не сильно-то и короче и ничуть не более понятно для непосвящённого.

Кстати, именно такие завязки называются «кривой архитектурой».

Не вижу ничего кривого. «Простые вещи должны делаться просто, сложные — должны быть возможны». Мне этот принцип гораздо ближе, чем мифический «юникс-вей», которого никто никогда не видел и под которым каждый понимает что-то своё, отличное от других.

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

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

Это намного лучше, чем расставлять кучу echo в ворохе шелл-скриптов.

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

вообще-то с tcpdump-ом как раз всё просто и очевидно

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

Что значит «радуйся, что не надо»? История не знает сослагательного. Если бы в systemd не было прекрасного диагностического интерфейса и приходилось бы на каждый чих добавлять в код аналоги быдлодебажных шелловских конструкций — то и отношение к нему людей было бы совсем другим.

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

aptitude search systemd-sysv

полагаю тред закончится тем, что у «них» рач|федора.

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

С каких пор это заменяет отладочную печать?

А с каких пор отладочная печать заменяет отладчик?

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

А с каких пор отладочная печать заменяет отладчик?

Да с начала времен, вообще-то. Но пойнт был в том, что аналогом ситуации, когда в sysvinit приходится вставлять echo, будет ситуация, когда в systemd придется вставлять printf.

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

Но пойнт был в том, что аналогом ситуации, когда в sysvinit приходится вставлять echo, будет ситуация, когда в systemd придется вставлять printf.

Нет.

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

Но пойнт был в том, что аналогом ситуации, когда в sysvinit приходится вставлять echo, будет ситуация, когда в systemd придется вставлять printf.

Нет.

Да.

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

Нет. Не придётся. А будет одним из вариантов. Хочешь - вставляешь printfы, хочешь - отлаживаешь при помощи gdb. Если не подходят первые два варианта, то можно взять systemtap.

Я уже не говорю о том, что вероятность поломки всего одного сервиса из-за баги в systemd намного меньше, чем вероятность поломки одного «сервиса» в системе на баш-скриптах.

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

Простые вещи должны делаться просто, сложные — должны быть возможны».

Всё это было и до systemd. Но обладало фатальным недостатком...

мифический «юникс-вей», которого никто никогда не видел

«Мурзилка взглянул на доску.
- Я бы на вашем месте применил защиту Нимцовича, - обратился он к Доре-2.
- Не знаю, как защищается ваш Нимцович, а я защищаюсь кирпичами и булыжниками. - Дернула плечами Дора-2» (ц)

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

Ad hominem во второй реплике разговора.

Почему во второй? В первой.

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

Справедливости ради. Данная команда к systemd не имеет никакого отношения. Интерфейс у dbus ещё тот, но разработчики systemd к этому не имеют отношения

at ★★
()

какой милый срачь получился.
хорошо хоть что у меня все заработало.....

griz
() автор топика
Ответ на: комментарий от at

Ещё раз.

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

Справедливости ради. Данная команда к systemd не имеет никакого отношения. Интерфейс у dbus ещё тот, но разработчики systemd к этому не имеют отношения

Кто заставлял разработчиков systemd делать этот интерфейс через dbus? Да никто, это их выбор и их ответственность (точнее безответственность).

И, кстати, вот эта фраза ложь:

Интерфейс у dbus ещё тот, но разработчики systemd к этому не имеют отношения

Анон даже специально посмотрел списки авторов обоих поделий.

anonymous
()

раз уж тут собрались знатоки systemd то поясните мне как нынче должна машина выключатся?
обнаружилось что
readlink /sbin/halt
/bin/systemctl
readlink /sbin/shutdown
/bin/systemctl

и как systemd узнает что надо выключатся если я вызываю /sbin/halt????


собственно разбирательство началось с того, что машина перестала выключатся - гасит винты и замерает на system halted. Если сказать sudo shutdown -P 0 то все вырубается нормально. И тут выяснилось что это ныне линки на systemctl

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

и как systemd узнает что надо выключатся если я вызываю /sbin/halt????

Для общего развития поинтересуйся, что такое busybox. Ответ же на твой вопрос лежит в argv[0].

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

Потому что правильно не halt, а poweroff. Различие, думаю, сам поймёшь. А как оно работает, когда всё это симлинки на systemctl, внизу ответили.

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