|
@@ -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
|