Я пытаюсь настроить некоторые пользовательские службы, используя 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 работал с 'user', у исполняющего пользователя должен быть запущен собственный экземпляр dbus (требование systemd). Пользовательский процесс dbus обычно запускается во время обычного входа в систему, но не во время выполнения задач Ansible. В противном случае вы, вероятно, получите сообщение «Не удалось подключиться к шине: нет такого файла или каталога».
Обычно DBus необходимо запустить, прежде чем systemd --user
сможет работать. Я тоже не уверен, как это сделать, но я могу обойти это другими способами, я думаю.
Однако сейчас главный блокировщик: как я могу проверить, как правило, наличие функциональность?
Я пробовал systemctl show
, и нет явной "пользовательской" функции. Является ли флаг "+ PAM" из строки Features
? Я знаю, что systemd использует PAM хотя бы частично для его реализации, я не знаю, нужен ли он для других функций.
Как я могу проверить, что "мой" systemd надежно поддерживает --user
? Есть ли файл, который я могу проверить? Команда? Что-то другое? DBus вуду?