Вопрос или проблема
Когда я проверяю статус ssh:
sudo systemctl status sshd
вернуло:
● ssh.service - OpenBSD Secure Shell server
Loaded: загружено (/lib/systemd/system/ssh.service; включено; предустановлено: включено)
Active: активно (работает) с Чт 2022-01-06 10:00:46 UTC; 16 ч. назад
Process: 14197 ExecStartPre=/usr/sbin/sshd -t (код=завершено, статус=0/УСПЕХ)
Main PID: 14198 (sshd)
Tasks: 21 (лимит: 6143)
CGroup: /system.slice/ssh.service
├─ 7177 containerd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io.containerd.runtime.v1.linux
├─10683 dbus-daemon --system
├─10743 /lib/systemd/systemd-logind
├─11794 dbus-daemon --system
├─11812 dbus-daemon --system
├─14198 /usr/sbin/sshd -D
├─15483 sshd: boe [priv]
├─15712 sshd: boe@pts/0
├─15713 /bin/bash -l
├─15729 sudo systemctl status sshd
├─15730 systemctl status sshd
└─15731 pager
7 янв 02:05:38 boe sshd[15294]: Получено отключение от 10.13.61.106 порт 63245:11: отключено пользователем
7 янв 02:05:38 boe sshd[15294]: Отключено от пользователя boe 10.13.61.106 порт 63245
7 янв 02:28:05 boe sshd[15483]: Принят пароль для boe от 10.13.61.106 порт 63906 ssh2
7 янв 02:28:05 boe sshd[15483]: pam_unix(sshd:session): сеанс открыт для пользователя boe (uid=0)
7 янв 02:28:05 boe sshd[15483]: pam_systemd(sshd:session): Не удалось подключиться к системной шине: Подключение отказано
7 янв 02:28:05 boe sshd[15483]: pam_limits(sshd:session): неизвестный лимит 'noproc'
7 янв 02:28:05 boe sshd[15483]: pam_limits(sshd:session): неизвестный лимит 'noproc'
7 янв 02:28:43 boe sudo[15729]: pam_unix(sudo:auth): ошибка аутентификации; logname=boe uid=1000 euid=0 tty=/dev/pts/0 rus
7 янв 02:28:48 boe sudo[15729]: boe : TTY=pts/0 ; PWD=/home/boe ; USER=root ; COMMAND=/bin/systemctl status sshd
7 янв 02:28:48 boe sudo[15729]: pam_unix(sudo:session): сеанс открыт для пользователя root пользователем boe(uid=0)
в нем содержится
Не удалось подключиться к системной шине: Подключение отказано
затем я проверяю dbus:
sudo systemctl status dbus
● dbus.service - D-Bus System Message Bus
Loaded: загружено (/lib/systemd/system/dbus.service; статично; предустановлено: включено)
Active: не активно (мертво)
Docs: man:dbus-daemon(1)
Почему он не запустился автоматически? Я пытался запустить его
sudo systemctl start dbus.service
Не удалось запустить dbus.service: Операция отклонена, единица dbus.service может быть запрошена только по зависимости (она настроена, чтобы отклонять ручной запуск/остановку).
Смотрите системные журналы и 'systemctl status dbus.service' для деталей.
Что идет не так?
У меня была довольно похожая проблема в Mint, я тоже не смог запустить dbus вручную. Я не решил эту проблему, потому что понял, что вызывает невозможность автоматического запуска dbus. Так что, если у кого-то есть похожая проблема:
С помощью systemctl --failed
мы можем наблюдать, какие (другие) службы не удалось запустить. Решение этих проблем решило проблему с dbus для меня.
Ответ или решение
Когда вы сталкиваетесь с проблемой, что служба D-Bus не может быть запущена вручную, как в вашем примере, важно глубже разобраться в контексте причины происходящего. Рассмотрим вашу ситуацию и предложим шаги для ее разрешения.
Проблема
Вы отметили, что в процессе проверки статуса службы D-Bus (dbus.service) с помощью команды sudo systemctl status dbus
вы увидели, что служба inactive (мертва). Попытка запустить ее вручную приводит к сообщению о том, что "операция отклонена, unit dbus.service может быть запрашиваемым только зависимостью".
Причины
-
Проблема с зависимостями: D-Bus настроен так, что его можно запускать только как зависимость других служб, таких как
systemd
илиssh
. Это делается для обеспечения корректного взаимодействия между процессами, которые зависят от системы сообщений D-Bus. -
Неактивные зависимости: Если другие службы, которые должны запускать D-Bus, не работают должным образом, это также может привести к тому, что D-Bus не сможет запуститься автоматически.
-
Ошибка "Failed to connect to system bus": Это сообщение происходит, когда службы, такие как sshd, пытаются получить доступ к D-Bus, но сам D-Bus не работает. Это может быть вызвано неправильным конфигурационным файлом или тем, что другие службы не смогли запуститься.
Решение проблемы
-
Проверка зависимостей: Используйте команду
systemctl --failed
, чтобы увидеть, есть ли другие службы, которые не смогли запуститься. Попробуйте устранить возникшие ошибки у этих служб, так как их работа может быть связана с запуском D-Bus. -
Логи системных служб: Убедитесь, что вы проверяете логи системных служб на наличие сообщений об ошибках. Для этого используйте команду
journalctl -xe
. Возможно, там будут указаны конкретные причины неудачи. -
IPv6: Если в вашей системе используются настройки IPv6, убедитесь, что они правильные. Иногда неправильная конфигурация сети может мешать запуску D-Bus.
-
Переустановка D-Bus: Если ни одно из вышеуказанных решений не помогает, возможно, потребуется переустановить D-Bus, что можно сделать с помощью команды:
sudo apt-get purge dbus sudo apt-get install dbus
-
Перезагрузка системы: Если вы внесли изменения в конфигурацию или установили/удалили службы, перезагрузите систему, чтобы все изменения вступили в силу.
Заключение
Проблема с запуском D-Bus может возникнуть в результате несоответствия или неисправности в зависимостях других служб. Внимательная диагностика логов и проверка состояния зависимых сервисов, как описано выше, помогут вам эффективно решить эту проблему. Помните, что не стоит игнорировать сообщения об ошибках, так как они могут указать на корень проблемы и облегчить найти решение.