add systemd services and handlers pipeline
This commit is contained in:
48
systemd/install.sh
Normal file
48
systemd/install.sh
Normal file
@@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
# Скрипт установки systemd сервисов для Carpibord
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
||||
|
||||
echo "=== Установка Carpibord сервисов ==="
|
||||
|
||||
# Проверка root
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Запусти с sudo: sudo ./install.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Копируем сервисы
|
||||
echo "[1/4] Копирование сервисов..."
|
||||
cp "$SCRIPT_DIR/can0-link.service" /etc/systemd/system/
|
||||
cp "$SCRIPT_DIR/carpibord.service" /etc/systemd/system/
|
||||
|
||||
# Обновляем путь к проекту в сервисе
|
||||
echo "[2/4] Настройка путей..."
|
||||
sed -i "s|/home/pi/carpibord|$PROJECT_DIR|g" /etc/systemd/system/carpibord.service
|
||||
|
||||
# Определяем пользователя (кто запустил sudo)
|
||||
ACTUAL_USER="${SUDO_USER:-pi}"
|
||||
sed -i "s|User=pi|User=$ACTUAL_USER|g" /etc/systemd/system/carpibord.service
|
||||
|
||||
# Перезагружаем systemd
|
||||
echo "[3/4] Перезагрузка systemd..."
|
||||
systemctl daemon-reload
|
||||
|
||||
# Включаем сервисы
|
||||
echo "[4/4] Включение сервисов..."
|
||||
systemctl enable can0-link.service
|
||||
systemctl enable carpibord.service
|
||||
|
||||
echo ""
|
||||
echo "=== Готово! ==="
|
||||
echo ""
|
||||
echo "Команды управления:"
|
||||
echo " sudo systemctl start carpibord # Запустить (can0 поднимется автоматически)"
|
||||
echo " sudo systemctl stop carpibord # Остановить"
|
||||
echo " sudo systemctl status carpibord # Статус"
|
||||
echo " journalctl -u carpibord -f # Логи в реальном времени"
|
||||
echo ""
|
||||
echo "Сервисы запустятся автоматически при следующей загрузке."
|
||||
Reference in New Issue
Block a user