- добавление скриптов для systemd

This commit is contained in:
2025-08-11 16:12:47 +03:00
parent de5a5e9248
commit 50d505f887
8 changed files with 492 additions and 29 deletions

155
service-control.sh Executable file
View File

@@ -0,0 +1,155 @@
#!/bin/bash
# Простой скрипт управления Linux Gaming News Bot
SERVICE_NAME="bot-news-linux-gaming"
# Цвета для вывода
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
print_info() {
echo -e "${BLUE}[INFO]${NC} $1"
}
print_success() {
echo -e "${GREEN}[SUCCESS]${NC} $1"
}
print_warning() {
echo -e "${YELLOW}[WARNING]${NC} $1"
}
print_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# Функция показа статуса
show_status() {
print_info "Статус сервиса $SERVICE_NAME:"
systemctl status $SERVICE_NAME --no-pager -l
}
# Функция показа логов
show_logs() {
local lines=${1:-50}
print_info "Последние $lines строк логов:"
sudo journalctl -u $SERVICE_NAME -n $lines --no-pager
}
# Функция следения за логами
follow_logs() {
print_info "Следование за логами (Ctrl+C для выхода):"
sudo journalctl -u $SERVICE_NAME -f
}
# Функция показа помощи
show_help() {
echo "Управление Linux Gaming News Bot"
echo ""
echo "Использование: $0 [команда]"
echo ""
echo "Команды:"
echo " start - Запустить сервис"
echo " stop - Остановить сервис"
echo " restart - Перезапустить сервис"
echo " status - Показать статус сервиса"
echo " enable - Включить автозапуск"
echo " disable - Отключить автозапуск"
echo " logs - Показать последние логи"
echo " logs N - Показать последние N строк логов"
echo " follow - Следить за логами в реальном времени"
echo " install - Установить сервис (требует sudo)"
echo " uninstall - Удалить сервис (требует sudo)"
echo " help - Показать эту справку"
echo ""
}
# Проверка существования сервиса
check_service_exists() {
if ! systemctl list-unit-files | grep -q "^$SERVICE_NAME.service"; then
print_error "Сервис $SERVICE_NAME не установлен"
print_info "Запустите: sudo ./install-service.sh"
exit 1
fi
}
# Основная логика
case "${1}" in
"start")
check_service_exists
print_info "Запуск сервиса..."
sudo systemctl start $SERVICE_NAME
show_status
;;
"stop")
check_service_exists
print_info "Остановка сервиса..."
sudo systemctl stop $SERVICE_NAME
show_status
;;
"restart")
check_service_exists
print_info "Перезапуск сервиса..."
sudo systemctl restart $SERVICE_NAME
show_status
;;
"status")
check_service_exists
show_status
;;
"enable")
check_service_exists
print_info "Включение автозапуска..."
sudo systemctl enable $SERVICE_NAME
print_success "Автозапуск включен"
;;
"disable")
check_service_exists
print_info "Отключение автозапуска..."
sudo systemctl disable $SERVICE_NAME
print_success "Автозапуск отключен"
;;
"logs")
check_service_exists
if [ -n "$2" ] && [[ "$2" =~ ^[0-9]+$ ]]; then
show_logs $2
else
show_logs
fi
;;
"follow")
check_service_exists
follow_logs
;;
"install")
if [ ! -f "./install-service.sh" ]; then
print_error "Файл install-service.sh не найден"
exit 1
fi
sudo ./install-service.sh
;;
"uninstall")
if [ ! -f "./uninstall-service.sh" ]; then
print_error "Файл uninstall-service.sh не найден"
exit 1
fi
sudo ./uninstall-service.sh
;;
"help"|"--help"|"-h")
show_help
;;
"")
print_warning "Команда не указана"
show_help
exit 1
;;
*)
print_error "Неизвестная команда: $1"
show_help
exit 1
;;
esac