# systemd-службы сетевого моста Автозапуск `tools/bridge.py` как служб: `cart-bridge-tx` (отправитель, рядом с пультом) и `cart-bridge-rx` (приёмник, рядом с тележкой). На каждой машине включается ровно одна роль. ## Установка На машине-отправителе: ```sh sudo ./install-bridge.sh tx ``` На машине-приёмнике: ```sh sudo ./install-bridge.sh rx ``` Установщик подставляет в юнит реальные пути (python из `.venv` проекта, если есть, иначе системный `python3`; `bridge.py`; рабочий каталог) и пользователя (того, кто вызвал `sudo`). Юниты кладутся в `/etc/systemd/system/`, конфиги — в `/etc/cart-bridge/{tx,rx}.env` (создаются из примеров, существующие не перезаписываются). Без аргумента (`none`) — только установка, без включения. Интерпретатор можно задать явно: `sudo PYTHON=/usr/bin/python3 ./install-bridge.sh rx`. В выбранном python должен быть `pyserial`. ## Настройка Отредактировать конфиг под свою сеть и ключ: ```sh sudoedit /etc/cart-bridge/tx.env # peer = адрес приёмника, общий ключ sudoedit /etc/cart-bridge/rx.env # bind, тот же ключ sudo systemctl restart cart-bridge-tx # применить ``` Ключ `CART_BRIDGE_KEY` на обеих сторонах должен совпадать (HMAC-аутентификация пакетов; обязателен для интернета). ## Эксплуатация ```sh systemctl status cart-bridge-tx journalctl -u cart-bridge-tx -f # логи; на отправителе видно «приёмник отвечает/НЕ отвечает» sudo systemctl restart cart-bridge-tx sudo systemctl disable --now cart-bridge-tx ``` Служба перезапускается при падении (`Restart=always`). Доступ к USB-порту STM даётся группами `dialout`/`plugdev` (прописаны в юните).