61 lines
1.8 KiB
Bash
Executable File
61 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Имя сервиса
|
|
SERVICE_NAME="BuildIncrementer"
|
|
APP_DIR="/opt/BuildIncrementer"
|
|
VENV_PATH="$APP_DIR/.venv"
|
|
PORT=7898
|
|
|
|
# Полный путь к исполняемому файлу uvicorn
|
|
EXEC_START="$VENV_PATH/bin/uvicorn main:app --host 0.0.0.0 --port $PORT"
|
|
|
|
# Файл службы systemd
|
|
SERVICE_FILE="/etc/systemd/system/$SERVICE_NAME.service"
|
|
|
|
# Проверка, что директория приложения существует
|
|
if [ ! -d "$APP_DIR" ]; then
|
|
echo "Директория приложения не найдена: $APP_DIR"
|
|
exit 1
|
|
fi
|
|
|
|
# Проверка, что виртуальное окружение существует
|
|
if [ ! -d "$VENV_PATH" ]; then
|
|
echo "Виртуальное окружение не найдено: $VENV_PATH"
|
|
exit 1
|
|
fi
|
|
|
|
# Создание файла службы systemd
|
|
echo "Создаю файл службы systemd: $SERVICE_FILE"
|
|
|
|
sudo bash -c "cat > $SERVICE_FILE" <<EOL
|
|
[Unit]
|
|
Description=Counter Service
|
|
After=network.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=$(whoami)
|
|
WorkingDirectory=$APP_DIR
|
|
ExecStart=$EXEC_START
|
|
Restart=on-failure
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOL
|
|
|
|
# Перезагрузка конфигурации systemd
|
|
echo "Перезагружаю конфигурацию systemd..."
|
|
sudo systemctl daemon-reload
|
|
|
|
# Включение сервиса для автозапуска при старте системы
|
|
echo "Включаю сервис $SERVICE_NAME для автозапуска..."
|
|
sudo systemctl enable $SERVICE_NAME
|
|
|
|
# Запуск сервиса
|
|
echo "Запускаю сервис $SERVICE_NAME..."
|
|
sudo systemctl start $SERVICE_NAME
|
|
|
|
# Проверка статуса сервиса
|
|
echo "Проверяю статус сервиса $SERVICE_NAME..."
|
|
sudo systemctl status $SERVICE_NAME --no-pager
|