Назад | Перейти на главную страницу

Есть ли способ надежно проверить, поддерживает ли systemd --user?

Я пытаюсь настроить некоторые пользовательские службы с помощью Ansible и systemd.

На Ubuntu и RHEL 7 я получаю

# systemctl --user status
Failed to get D-Bus connection: Connection refused

Для Ubuntu я уточнил ошибку, это из-за этого:

https://docs.ansible.com/ansible/latest/modules/systemd_module.html

запустите systemctl в рамках заданной области диспетчера служб, либо в качестве области системы по умолчанию (система), либо в качестве области действия текущего пользователя (пользователя), либо в качестве области всех пользователей (глобально). Для того, чтобы systemd мог работать с «пользователем», у исполняющего пользователя должен быть запущен собственный экземпляр dbus (требование systemd). Пользовательский процесс dbus обычно запускается во время обычного входа в систему, но не во время выполнения задач Ansible. В противном случае вы, вероятно, получите ошибку «Не удалось подключиться к шине: нет такого файла или каталога».

Обычно DBus нужно запускать перед systemd --user может работать. Я тоже не знаю, как это сделать, но я думаю, что могу обойти это другими способами.

Однако главный блокировщик прямо сейчас: как проверить, в общем, доступность функциональности?

Я попытался systemctl show и нет явной «пользовательской» функции. Флаг "+ PAM" от Features линия? Я знаю, что systemd хотя бы частично использует PAM для его реализации, но не знаю, нужен ли он для других функций.

Как я могу проверить, что "мой" systemd поддерживает --user надежно? Есть файл, который я могу проверить? Команда? Что-то другое? DBus voodoo?