File size: 1,327 Bytes
b3b0b53
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/bash
# This script starts the Gunicorn server for the ASR application.

echo "Starting ASR service with Gunicorn..."

# Absolute path to the project directory
PROJECT_DIR="/home/ubuntu/wechat-miniprogram-translator"

# Absolute path to the Gunicorn executable within the venv
VENV_GUNICORN="${PROJECT_DIR}/venv/bin/gunicorn"

# Check if the Gunicorn executable exists
if [ ! -f "$VENV_GUNICORN" ]; then
  echo "Error: Gunicorn executable not found at $VENV_GUNICORN"
  echo "Please make sure you have run 'pip install gunicorn' in your venv."
  exit 1
fi

# Navigate to the directory containing asr_server.py
cd "$PROJECT_DIR" || exit

# Explanation of parameters:
# --workers 1: Use a single worker process.
# --max-requests 1: CRITICAL! Restart the worker after every single request to prevent state issues.
# --timeout 120: Allow each worker up to 120 seconds to process a request.
# --bind 0.0.0.0:5001: Listen on port 5001 on all network interfaces.
# asr_server:app: The Flask application instance 'app' from the 'asr_server.py' file.
# "$@": This is the crucial part. It takes all arguments passed to this script
#       (from ecosystem.config.js, e.g., --model tiny) and passes them to the python script.
exec "$VENV_GUNICORN" --workers 1 --max-requests 1 --timeout 120 --bind 0.0.0.0:5001 asr_server:app -- "$@"