72 lines
2.6 KiB
Bash
Executable File
72 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
||
# Скрипт установки systemd сервиса для Telegram CLI Bot
|
||
|
||
set -e
|
||
|
||
BOT_USER="${BOT_USER:-$USER}"
|
||
BOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
BOT_VENV="${BOT_DIR}/venv"
|
||
SERVICE_FILE="${BOT_DIR}/telegram-bot.service"
|
||
SYSTEMD_SERVICE="/etc/systemd/system/telegram-bot.service"
|
||
|
||
echo "🔧 Установка systemd сервиса для Telegram CLI Bot"
|
||
echo "=================================================="
|
||
echo "Пользователь: $BOT_USER"
|
||
echo "Директория: $BOT_DIR"
|
||
echo "Venv: $BOT_VENV"
|
||
echo ""
|
||
|
||
# Проверка что скрипт запущен от root или через sudo
|
||
if [ "$EUID" -ne 0 ]; then
|
||
echo "❌ Запустите скрипт от имени root (sudo ./install-systemd-service.sh)"
|
||
exit 1
|
||
fi
|
||
|
||
# Проверка существования файлов
|
||
if [ ! -f "$BOT_DIR/bot.py" ]; then
|
||
echo "❌ bot.py не найден в $BOT_DIR"
|
||
exit 1
|
||
fi
|
||
|
||
if [ ! -f "$BOT_VENV/bin/python" ]; then
|
||
echo "❌ Venv не найден в $BOT_VENV"
|
||
echo " Запустите: source $BOT_DIR/venv/bin/activate && pip install -r requirements.txt"
|
||
exit 1
|
||
fi
|
||
|
||
if [ ! -f "$BOT_DIR/.env" ]; then
|
||
echo "⚠️ .env файл не найден. Создайте его:"
|
||
echo " cp $BOT_DIR/.env.example $BOT_DIR/.env"
|
||
echo " и отредактируйте переменные окружения"
|
||
exit 1
|
||
fi
|
||
|
||
# Создаём systemd сервис из шаблона
|
||
echo "📝 Создание systemd сервиса..."
|
||
sed -e "s|%USER%|$BOT_USER|g" \
|
||
-e "s|%WORKDIR%|$BOT_DIR|g" \
|
||
-e "s|%VENV_PATH%|$BOT_VENV/bin|g" \
|
||
"$SERVICE_FILE" > "$SYSTEMD_SERVICE"
|
||
|
||
echo "✅ Сервис установлен в $SYSTEMD_SERVICE"
|
||
|
||
# Перезагружаем systemd и включаем сервис
|
||
echo "🔄 Перезагрузка systemd..."
|
||
systemctl daemon-reload
|
||
|
||
echo "🚀 Включение сервиса..."
|
||
systemctl enable telegram-bot
|
||
|
||
echo ""
|
||
echo "✅ Установка завершена!"
|
||
echo ""
|
||
echo "Управление сервисом:"
|
||
echo " sudo systemctl start telegram-bot - Запустить бота"
|
||
echo " sudo systemctl stop telegram-bot - Остановить бота"
|
||
echo " sudo systemctl restart telegram-bot - Перезапустить бота"
|
||
echo " sudo systemctl status telegram-bot - Проверить статус"
|
||
echo ""
|
||
echo "Просмотр логов:"
|
||
echo " sudo journalctl -u telegram-bot -f - Логи в реальном времени"
|
||
echo " sudo journalctl -u telegram-bot --since today - Логи за сегодня"
|