init
This commit is contained in:
60
linux/create_service.sh
Executable file
60
linux/create_service.sh
Executable file
@@ -0,0 +1,60 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user