Вопрос или проблема
Я пытаюсь включить службу Bluetooth только для graphical.target, что эквивалентно уровню выполнения 5.
Я на Debian Jessie, здесь используется systemd.
Мне сказали создать символьную ссылку в директории /etc/systemd/system/graphical.target.wants, но я все еще немного запутан.
Я уже пробовал использовать update-rc.d, но это не сработало.
В /etc/systemd/system есть папка под названием bluetooth.service.wants, в которой есть файл bluetooth.service, содержащий информацию о юните.
Также есть другой .service файл в /etc/systemd/system, который является псевдонимом для оригинального bluetooth.service. Спасибо.
Этот ответ на Unix.SE предоставляет хороший обзор о том, как создать пользовательский таргет.
Очевидно, вы не можете легко переопределить секцию [Install]
юнита systemd. Она определяет, какой таргет «будет хотеть» этот юнит.
~ # systemctl enable apcupsd
Создана символьная ссылка /etc/systemd/system/multi-user.target.wants/apcupsd.service → /usr/lib/systemd/system/apcupsd.service.
~ # cat /usr/lib/systemd/system/apcupsd.service
[Unit]
Description=Монитор APC UPS
[Service]
ExecStart=/usr/bin/apcupsd -b
[Install]
WantedBy=multi-user.target
Как видно, включение юнита (не только службы!) так же просто, как создание символьной ссылки. Теперь, когда systemd сообщается о запуске multi-user.target
, он также запустит apcupsd.service
.
Итак, сначала вам нужно узнать, где находится bluetooth.service
. Предположим, что он находится по адресу /usr/lib/systemd/system/bluetooth.service
. Затем вам просто нужно:
~ # ln -s /usr/lib/systemd/system/bluetooth.service /etc/systemd/system/graphical.target.wants/bluetooth.service
Если директория graphical.target.wants
не существует, вам нужно сначала создать ее.
Ответ или решение
Чтобы включить службу Bluetooth только для целевого графического эквивалента (graphical.target) в системе, использующей systemd, выполните следующие шаги. Данный процесс позволяет привязать службу к определенному целевому состоянию, что особенно полезно, если вам нужно, чтобы служба запускалась только в графической среде.
Шаги для активации службы для graphical.target
-
Проверьте наличие файла службы Bluetooth:
Убедитесь, что файл службы Bluetooth существует. Обычно он расположен по пути/usr/lib/systemd/system/bluetooth.service
. Для этого выполните команду:ls /usr/lib/systemd/system/bluetooth.service
-
Проверьте наличие целевого каталога:
Убедитесь, что директория/etc/systemd/system/graphical.target.wants
существует. Если её нет, создайте её с помощью следующей команды:sudo mkdir -p /etc/systemd/system/graphical.target.wants
-
Создание символической ссылки:
После того как убедитесь, что файл службы и директория существуют, создайте символическую ссылку на службу Bluetooth в каталогеgraphical.target.wants
, используя команду:sudo ln -s /usr/lib/systemd/system/bluetooth.service /etc/systemd/system/graphical.target.wants/bluetooth.service
Это действие создаст ссылку, которая позволит системе запускать службу Bluetooth, когда будет активирован целевой режим
graphical.target
. -
Проверка и активация службы:
После создания ссылки рекомендуется активировать службу Bluetooth и проверить её статус:sudo systemctl daemon-reload sudo systemctl enable bluetooth.service sudo systemctl start bluetooth.service sudo systemctl status bluetooth.service
Дополнительные замечания
-
Проверка работоспособности:
После выполнения всех вышеописанных действий, после перезагрузки системы, служба Bluetooth будет автоматически запущена только тогда, когда будет достигнуто целевое состояниеgraphical.target
. -
Отладка:
Если служба не запускается, проверьте журналы systemd для получения информации об ошибках:journalctl -xe
-
Избегайте использования update-rc.d:
В случае с systemd не используйтеupdate-rc.d
, так как этот инструмент предназначен для систем инициализации SysV и не совместим с systemd.
Следуя данным шагам, вы сможете успешно настроить службу Bluetooth для работы только в графическом режиме, что обеспечит оптимальное использование системных ресурсов и повысит безопасность, ограничив запускаемые процессы только необходимыми задачами в определённых целях.