Не удалось подключиться к шине: Нет такого файла или каталога в Bosh lite

Я использую Bosh lite на своей машине, где я развернул кластер Patroni на трех садовых контейнерах, работающих на Ubuntu 16.04 Stemcell. Я создал службу systemd и хотел бы использовать ее в этой тестовой среде, но не могу ее запустить.

Проблема в том, что Bosh lite по умолчанию не запускается с systemd и если я запускаю:

systemctl --user start patroni_fencer.service

Я получил следующую ошибку:

Failed to connect to bus: No such file or directory

Я нашел два возможных обсуждения на StackOverflow:

Не удалось подключиться к шине: нет такого файла или каталога< /а>

службе systemd не удалось подключиться к сеансу d-bus

но они не решают мою проблему, потому что ссылаются на Docker, а моя проблема на Bosh lite. Я заметил, что в Bosh lite есть процесс garden-init как процесс PID 1, и он запускается с помощью системы runit.

Есть ли способ протестировать мою службу systemd в контейнерах Bosh lite? Было бы хорошо, если бы я мог запустить systemd вручную, а затем запустить обычную команду systemctl. Это только тестовая среда.


person Salvatore D'angelo    schedule 12.06.2019    source источник


Ответы (1)


docker-systemctl-replacement не требует запущенного демона systemd для запуска служб, определенных в какой-то *.service файл. Если вы не используете его внутри докера, вы можете просто запустить скрипт systemctl.py, не устанавливая его.

Что делает инструмент: ищет патрони_фенсер.сервис в стандартных каталогах. Он будет искать строку ExecStart, интерпретировать и выполнять ее. Команда exec'ed отделена от systemctl.py, поэтому она будет переопределена на PID-1, какой бы он ни был в вашей системе.

person Guido U. Draheim    schedule 14.06.2019
comment
Где я могу найти скрипт systemctl.py? - person Salvatore D'angelo; 15.06.2019