38 γραμμές
1.1 KiB
Bash
38 γραμμές
1.1 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
INSTANCES=${LLAMA_INSTANCES:-2}
|
|
BASE_PORT=${LLAMA_BASE_PORT:-9000}
|
|
READY_TIMEOUT=${LLAMA_READY_TIMEOUT:-600}
|
|
|
|
echo "Starting $INSTANCES llama-server instances on ports $BASE_PORT-$((BASE_PORT+INSTANCES-1))"
|
|
|
|
for ((i=0; i<INSTANCES; i++)); do
|
|
PORT=$((BASE_PORT + i))
|
|
echo "Starting instance $((i+1))/$INSTANCES on port $PORT..."
|
|
LLAMA_ARG_PORT=$PORT /app/llama-server \
|
|
> /var/log/llama-server-$PORT.log 2>&1 &
|
|
sleep 3
|
|
done
|
|
|
|
echo "Waiting for servers to be ready..."
|
|
for ((i=0; i<INSTANCES; i++)); do
|
|
PORT=$((BASE_PORT + i))
|
|
elapsed=0
|
|
while [ $elapsed -lt $READY_TIMEOUT ]; do
|
|
if curl -s http://127.0.0.1:$PORT/health > /dev/null 2>&1; then
|
|
echo "Instance on port $PORT is ready"
|
|
break
|
|
fi
|
|
sleep 5
|
|
elapsed=$((elapsed + 5))
|
|
done
|
|
if [ $elapsed -ge $READY_TIMEOUT ]; then
|
|
echo "ERROR: Server on port $PORT did not become ready after ${READY_TIMEOUT}s"
|
|
fi
|
|
done
|
|
|
|
echo "All instances ready. Monitoring logs..."
|
|
tail -f /var/log/llama-server-*.log &
|
|
wait
|