1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- #!/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
|