- services/test/*.service — удалены wake word и event test сервисы - services/test/wyoming-satelite-vosk-test.service — использует production порты - install_test_services.sh — обновлён для одного сервиса - services/test/start_test.sh — запуск только satellite - docs/deployment/systemd-services.md — обновлена документация Test satellite использует: - Production wake word (:10400) - Production event (:10500) - Те же порты что и production (:10700) - WebSocket :8675 + Audio Level (новые функции)
102 lines
3.4 KiB
Bash
Executable File
102 lines
3.4 KiB
Bash
Executable File
#!/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-satelite-vosk-test.service (спутник, порт 10700)"
|
|
echo ""
|
|
echo "💡 Production сервисы должны быть запущены:"
|
|
echo " - wyoming-wakeword-vosk.service (:10400)"
|
|
echo " - wyoming-event.service (:10500)"
|
|
echo ""
|
|
echo "🚀 Команды управления:"
|
|
echo " # Запуск test satellite"
|
|
echo " sudo systemctl start wyoming-satelite-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-satelite-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 ""
|