2.3 KiB
systemd-службы сетевого моста
Автозапуск tools/bridge.py как служб: cart-bridge-tx (отправитель, рядом с
пультом) и cart-bridge-rx (приёмник, рядом с тележкой). На каждой машине
включается ровно одна роль.
Установка
На машине-отправителе:
sudo ./install-bridge.sh tx
На машине-приёмнике:
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.
Настройка
Отредактировать конфиг под свою сеть и ключ:
sudoedit /etc/cart-bridge/tx.env # peer = адрес приёмника, общий ключ
sudoedit /etc/cart-bridge/rx.env # bind, тот же ключ
sudo systemctl restart cart-bridge-tx # применить
Ключ CART_BRIDGE_KEY на обеих сторонах должен совпадать (HMAC-аутентификация
пакетов; обязателен для интернета).
Эксплуатация
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 (прописаны в юните).