feat: добавить TEST сервисы для разработки
- services/test/*.service — 3 test сервиса (порты +1) - install_test_services.sh — установка test сервисов - services/test/start_test.sh — быстрый запуск в tmux - docs/deployment/systemd-services.md — документация TEST сервисы: - wyoming-satelite-vosk-test.service :10701 + WebSocket :8675 - wyoming-wakeword-vosk-test.service :10401 - wyoming-event-test.service :10501 Использование: 1. sudo ./install_test_services.sh — установка 2. sudo systemctl start wyoming-*-test.service — запуск 3. ./services/test/start_test.sh — запуск в tmux Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
Executable
+103
@@ -0,0 +1,103 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Установка TEST systemd сервисов для Wyoming Satellite (dev branch)
|
||||
# Автоматически определяет пути и подставляет их в service файлы
|
||||
#
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
SERVICE_DIR="${SCRIPT_DIR}/services/test"
|
||||
SYSTEMD_DIR="/etc/systemd/system"
|
||||
|
||||
echo "🔧 Установка TEST systemd сервисов для Wyoming Satellite (dev)"
|
||||
echo "=============================================================="
|
||||
|
||||
# Определяем текущего пользователя
|
||||
CURRENT_USER="${SUDO_USER:-$(whoami)}"
|
||||
HOME_DIR=$(getent passwd "$CURRENT_USER" | cut -d: -f6)
|
||||
|
||||
echo "👤 Пользователь: $CURRENT_USER"
|
||||
echo "🏠 Домашняя директория: $HOME_DIR"
|
||||
|
||||
# Ищем виртуальное окружение
|
||||
VENV_PATH=""
|
||||
for candidate in \
|
||||
"${HOME_DIR}/projects/.venv_satellite" \
|
||||
"${HOME_DIR}/.venv_satellite" \
|
||||
"${SCRIPT_DIR}/.venv" \
|
||||
"${SCRIPT_DIR}/.venv_satellite"
|
||||
do
|
||||
if [ -f "${candidate}/bin/python3" ]; then
|
||||
VENV_PATH="${candidate}"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -z "$VENV_PATH" ]; then
|
||||
echo "❌ Виртуальное окружение не найдено!"
|
||||
echo " Создайте его: cd ${SCRIPT_DIR} && ./setup_dev.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "✅ VENV: $VENV_PATH"
|
||||
|
||||
# Создаём временную директорию для обработанных сервисов
|
||||
TEMP_DIR=$(mktemp -d)
|
||||
trap "rm -rf ${TEMP_DIR}" EXIT
|
||||
|
||||
# Обрабатываем каждый test service файл
|
||||
for service_file in "${SERVICE_DIR}"/*.service; do
|
||||
[ -f "$service_file" ] || continue
|
||||
|
||||
filename=$(basename "$service_file")
|
||||
echo "📄 Обработка: $filename"
|
||||
|
||||
# Заменяем плейсхолдеры на актуальные пути
|
||||
sed -e "s|__SAT_BASE_DIR__|${SCRIPT_DIR}|g" \
|
||||
-e "s|__SAT_VENV__|${VENV_PATH}|g" \
|
||||
-e "s|__CURRENT_USER__|${CURRENT_USER}|g" \
|
||||
-e "s|__HOME_DIR__|${HOME_DIR}|g" \
|
||||
"$service_file" > "${TEMP_DIR}/${filename}"
|
||||
|
||||
# Копируем в systemd
|
||||
sudo cp "${TEMP_DIR}/${filename}" "${SYSTEMD_DIR}/"
|
||||
echo " ✅ Установлен в ${SYSTEMD_DIR}/${filename}"
|
||||
done
|
||||
|
||||
# Перезагружаем systemd
|
||||
echo ""
|
||||
echo "🔄 Перезагрузка systemd..."
|
||||
sudo systemctl daemon-reload
|
||||
|
||||
echo ""
|
||||
echo "✅ TEST сервисы установлены!"
|
||||
echo ""
|
||||
echo "📋 TEST сервисы (не влияют на production):"
|
||||
echo " - wyoming-event-test.service (LED управление, порт 10501)"
|
||||
echo " - wyoming-satelite-vosk-test.service (спутник, порт 10701)"
|
||||
echo " - wyoming-wakeword-vosk-test.service (wake word, порт 10401)"
|
||||
echo ""
|
||||
echo "🚀 Команды управления:"
|
||||
echo " # Запуск всех test сервисов"
|
||||
echo " sudo systemctl start wyoming-event-test.service"
|
||||
echo " sudo systemctl start wyoming-satelite-vosk-test.service"
|
||||
echo " sudo systemctl start wyoming-wakeword-vosk-test.service"
|
||||
echo ""
|
||||
echo " # Проверка статуса"
|
||||
echo " sudo systemctl status wyoming-satelite-vosk-test.service"
|
||||
echo ""
|
||||
echo " # Остановка"
|
||||
echo " sudo systemctl stop wyoming-satelite-vosk-test.service"
|
||||
echo ""
|
||||
echo "📊 Просмотр логов:"
|
||||
echo " journalctl -u wyoming-event-test.service -f"
|
||||
echo " journalctl -u wyoming-satelite-vosk-test.service -f"
|
||||
echo " journalctl -u wyoming-wakeword-vosk-test.service -f"
|
||||
echo ""
|
||||
echo "🌐 WebSocket для тестирования:"
|
||||
echo " ws://127.0.0.1:8675"
|
||||
echo ""
|
||||
echo "💡 Пример подключения:"
|
||||
echo " python3 examples/websocket-service/test_client.py --uri ws://127.0.0.1:8675"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user