浏览代码

Script on Ubuntu

e1mky 2 月之前
父节点
当前提交
d5607e362d
共有 2 个文件被更改,包括 81 次插入0 次删除
  1. 4 0
      ubuntu/README.md
  2. 77 0
      ubuntu/install_and_run_handlers.sh

+ 4 - 0
ubuntu/README.md

@@ -0,0 +1,4 @@
+Данный файл необходимо скопировать в папку /sharix-open-webapp-base/webservice_running/handlers
+
+Далее выдаем права через команду chmod +x
+После всего этого запускаем данный скрипт

+ 77 - 0
ubuntu/install_and_run_handlers.sh

@@ -0,0 +1,77 @@
+#!/bin/bash
+
+# поиск имени юзера
+USER_NAME=$(whoami)
+
+# папки
+HANDLER_DIR="/home/$USER_NAME/sharix-open-webapp-base/webservice_running/handlers"
+SERVICE_NAME="sharix-open-handlers.service"
+SERVICE_PATH="/etc/systemd/system/$SERVICE_NAME"
+
+# установка зависимости
+echo "Installing dependencies..."
+pip3 install -r /home/$USER_NAME/sharix-open-webapp-base/requirements.txt
+
+# создание службы
+echo "Creating systemd service for handlers..."
+
+# создание файла для службы
+sudo tee $SERVICE_PATH > /dev/null <<EOF
+[Unit]
+Description=ShariX Handlers
+After=network.target
+
+[Service]
+Type=simple
+User=$USER_NAME
+WorkingDirectory=$HANDLER_DIR
+ExecStart=/usr/bin/python3 /home/$USER_NAME/sharix-open-webapp-base/webservice_running/handlers/run_handlers.py
+Restart=always
+RestartSec=60s
+
+[Install]
+WantedBy=multi-user.target
+EOF
+
+# создание скрипта который запускает все обработчики
+RUN_HANDLER_SCRIPT="$HANDLER_DIR/run_handlers.py"
+echo "Creating Python script to run all handlers..."
+
+sudo tee $RUN_HANDLER_SCRIPT > /dev/null <<EOF
+import os
+import subprocess
+import time
+
+# List all handler scripts (excluding non-Python files)
+handlers = [f for f in os.listdir('$HANDLER_DIR') if f.endswith('.py')]
+
+# Start each handler script as a subprocess
+processes = []
+for handler in handlers:
+    print(f"Starting {handler}...")
+    process = subprocess.Popen(['python3', os.path.join('$HANDLER_DIR', handler)])
+    processes.append(process)
+
+# Keep the handlers running
+try:
+    while True:
+        time.sleep(60)  # Keep the process alive
+except KeyboardInterrupt:
+    for process in processes:
+        process.terminate()  # Terminate all handler processes if interrupted
+EOF
+
+# перезапуск демона служб
+echo "Reloading systemd..."
+sudo systemctl daemon-reload
+
+# включение и запуск нашей службы
+echo "Enabling and starting the service..."
+sudo systemctl enable $SERVICE_NAME
+sudo systemctl start $SERVICE_NAME
+
+echo "All handlers are now running as a service."
+
+# проверка работы службы
+echo "Checking status of the handler service..."
+sudo systemctl status $SERVICE_NAME