BusName=
[Service]
BusName= и Type=dbus
Задаёт имя на системной шине, которое служба должна занять. При Type=dbus занятие этого имени означает, что запуск завершён.
Что делает
Такой тип подходит службам, построенным вокруг шины: они регистрируют имя и через него принимают обращения. Для обычных сетевых служб он не нужен.
Если имя не совпадает или служба не работает с шиной, запуск закончится нарушением договора: состояние результата будет protocol.
Где ставится. В секции [Service], обязателен при Type=dbus.
Значения
| Значение | Что происходит |
|---|---|
org.example.MyApp | имя на системной шине. |
Пример
Служба, работающая через системную шину.
[Service]
Type=dbus
BusName=org.example.MyApp
ExecStart=/usr/local/bin/myapp --bus
Проверить занятое имя можно командой busctl list | grep MyApp — она покажет, кто его держит.
Типичные ошибки
Опечатка в имени приводит к ожиданию и нарушению договора вместо понятной ошибки.
Тип dbus без работы с шиной бессмысленен: берите simple или exec.
Связанные ошибки
- Failed with result 'protocol'Состояние protocol: служба нарушила договор со systemd. Обычно Type=notify без уведомления или Type=dbus без имени на шине.
- Failed with result 'timeout'Состояние timeout: служба не уложилась в отведённое время при запуске, остановке или перезагрузке настроек.
Рядом стоящие параметры
Источники
- systemd.service(5)
- Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)