forked from freeleaps/freeleaps-pub
Update for start and restart logic
This commit is contained in:
parent
1e25c6452b
commit
4c7974ae8b
@ -1472,29 +1472,36 @@ devbox_start_command() {
|
|||||||
# Start the backend and frontend services
|
# Start the backend and frontend services
|
||||||
echo "Starting backend and frontend services..."
|
echo "Starting backend and frontend services..."
|
||||||
|
|
||||||
# Check if /home/.devbox/.backend.pid exists
|
|
||||||
if [ ! -f /home/.devbox/.backend.pid ]; then
|
|
||||||
echo "ERROR: Backend service is not running. Please run 'devbox init' first."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check if /home/.devbox/.frontend.pid exists
|
|
||||||
if [ ! -f /home/.devbox/.frontend.pid ]; then
|
|
||||||
echo "ERROR: Frontend service is not running. Please run 'devbox init' first."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Start the backend service
|
# Start the backend service
|
||||||
|
|
||||||
echo '============================================'
|
echo '============================================'
|
||||||
echo ' Start to run start_webapi.sh'
|
echo ' Start to run webapi.main:app '
|
||||||
echo '============================================'
|
echo '============================================'
|
||||||
|
|
||||||
pushd /home/.devbox/freeleaps/apps
|
pushd /home/.devbox/freeleaps/apps
|
||||||
|
|
||||||
|
# CHeck if the virtual environment is created
|
||||||
|
if [ ! -f "venv_t/bin/activate" ]; then
|
||||||
|
echo "ERROR: The virtual environment cannot be created"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo '============================================'
|
||||||
|
echo ' Start to activate virtual environment'
|
||||||
|
echo '============================================'
|
||||||
|
source venv_t/bin/activate
|
||||||
|
source /home/.devbox/freeleaps/apps/.env
|
||||||
|
|
||||||
|
# Verify the virtual environment is activated
|
||||||
|
if [[ "\$VIRTUAL_ENV" != "" ]]; then
|
||||||
|
echo "Virtual environment activate: \$VIRTUAL_ENV"
|
||||||
|
else
|
||||||
|
echo "ERROR: The virtual environment cannot be startup \$VIRTUAL_ENV"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Check if the backend service is already running
|
# Check if the backend service is already running
|
||||||
SERVICE_API_ACCESS_PORT=\$(cat /home/.devbox/.devbox-frontend-port)
|
SERVICE_API_ACCESS_PORT=\$(cat /home/.devbox/.devbox-backend-port)
|
||||||
uvicorn webapi.main:app --reload --host 0.0.0.0 --port \$SERVICE_API_ACCESS_PORT > /home/.devbox/logs/backend.logs 2>&1 &
|
uvicorn freeleaps.webapi.main:app --reload --host 0.0.0.0 --port \$SERVICE_API_ACCESS_PORT > /home/.devbox/logs/backend.logs 2>&1 &
|
||||||
BACKEND_PID=\$!
|
BACKEND_PID=\$!
|
||||||
|
|
||||||
# Save BACKEND_PID to a file \${WORKING_HOME}/.backend.pid: Stores the process id of backend process.
|
# Save BACKEND_PID to a file \${WORKING_HOME}/.backend.pid: Stores the process id of backend process.
|
||||||
@ -1507,6 +1514,28 @@ if ! ps -p "\$BACKEND_PID" &>/dev/null; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Test backend and frontend services
|
||||||
|
echo "Testing backend and frontend services..."
|
||||||
|
|
||||||
|
# Test the backend service
|
||||||
|
echo "Testing backend service..."
|
||||||
|
attempt=0
|
||||||
|
max_attempts=10
|
||||||
|
while [ \$attempt -lt \$max_attempts ]; do
|
||||||
|
http_code=\$(curl -s -o /dev/null -w "%{http_code}" "http://localhost:\$SERVICE_API_ACCESS_PORT/docs")
|
||||||
|
if [ "\$http_code" -eq 200 ]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
attempt=\$((attempt+1))
|
||||||
|
sleep 5
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ \$attempt -eq \$max_attempts ]; then
|
||||||
|
echo "ERROR: Backend service is not available after \$max_attempts attempts."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Start the frontend service
|
# Start the frontend service
|
||||||
|
|
||||||
echo '============================================'
|
echo '============================================'
|
||||||
@ -1526,23 +1555,29 @@ if ! ps -p "\$FRONTEND_PID" &>/dev/null; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Test backend and frontend services
|
|
||||||
echo "Testing backend and frontend services..."
|
|
||||||
|
|
||||||
# Test the backend service
|
|
||||||
echo "Testing backend service..."
|
|
||||||
curl -s -o /dev/null -w "%{http_code}" "http://localhost:\$SERVICE_API_ACCESS_PORT/docs"
|
|
||||||
if [ "\$?" -ne 0 ]; then
|
|
||||||
echo "ERROR: Backend service is not available."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Test the frontend service
|
# Test the frontend service
|
||||||
|
|
||||||
echo "Testing frontend service..."
|
WEB_APP_ACCESS_PORT=\$(cat /home/.devbox/.devbox-frontend-port)
|
||||||
curl -s -o /dev/null -w "%{http_code}" "http://localhost:5173/"
|
|
||||||
if [ "\$?" -ne 0 ]; then
|
echo "Testing frontend service... PORT: \$WEB_APP_ACCESS_PORT"
|
||||||
echo "ERROR: Frontend service is not available."
|
attempt=0
|
||||||
|
max_attempts=10
|
||||||
|
while [ \$attempt -lt \$max_attempts ]; do
|
||||||
|
HTTP_CODE=\$(curl -s -o /dev/null -w "%{http_code}" "http://localhost:\$WEB_APP_ACCESS_PORT/")
|
||||||
|
# Check HTTP Code 200
|
||||||
|
if [ "\$HTTP_CODE" -eq 200 ]; then
|
||||||
|
echo "Frontend is available (HTTP \$HTTP_CODE)"
|
||||||
|
break
|
||||||
|
else
|
||||||
|
echo "Attempt \$((attempt+1)): Frontend not available (HTTP \$HTTP_CODE). Waiting..."
|
||||||
|
attempt=\$((attempt+1))
|
||||||
|
sleep 10
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ \$attempt -eq \$max_attempts ]; then
|
||||||
|
echo "ERROR: Frontend service is not available after \$max_attempts attempts."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -1826,29 +1861,38 @@ if [[ "$FREELEAPS_ENDPOINT" == "true" ]]; then
|
|||||||
# Start the backend and frontend services
|
# Start the backend and frontend services
|
||||||
echo "Starting backend and frontend services..."
|
echo "Starting backend and frontend services..."
|
||||||
|
|
||||||
# Check if /home/.devbox/.backend.pid exists
|
|
||||||
if [ ! -f /home/.devbox/.backend.pid ]; then
|
|
||||||
echo "ERROR: Backend service is not running. Please run 'devbox init' first."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check if /home/.devbox/.frontend.pid exists
|
|
||||||
if [ ! -f /home/.devbox/.frontend.pid ]; then
|
|
||||||
echo "ERROR: Frontend service is not running. Please run 'devbox init' first."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Start the backend service
|
# Start the backend service
|
||||||
|
|
||||||
echo '============================================'
|
echo '============================================'
|
||||||
echo ' Start to run start_webapi.sh'
|
echo ' Start to run webapi.main:app'
|
||||||
echo '============================================'
|
echo '============================================'
|
||||||
|
|
||||||
pushd /home/.devbox/freeleaps/apps
|
pushd /home/.devbox/freeleaps/apps
|
||||||
|
|
||||||
|
|
||||||
|
# CHeck if the virtual environment is created
|
||||||
|
if [ ! -f "venv_t/bin/activate" ]; then
|
||||||
|
echo "ERROR: The virtual environment cannot be created"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo '============================================'
|
||||||
|
echo ' Start to activate virtual environment'
|
||||||
|
echo '============================================'
|
||||||
|
source venv_t/bin/activate
|
||||||
|
source /home/.devbox/freeleaps/apps/.env
|
||||||
|
|
||||||
|
# Verify the virtual environment is activated
|
||||||
|
if [[ "\$VIRTUAL_ENV" != "" ]]; then
|
||||||
|
echo "Virtual environment activate: \$VIRTUAL_ENV"
|
||||||
|
else
|
||||||
|
echo "ERROR: The virtual environment cannot be startup \$VIRTUAL_ENV"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Check if the backend service is already running
|
# Check if the backend service is already running
|
||||||
SERVICE_API_ACCESS_PORT=\$(cat /home/.devbox/.devbox-frontend-port)
|
SERVICE_API_ACCESS_PORT=\$(cat /home/.devbox/.devbox-backend-port)
|
||||||
uvicorn webapi.main:app --reload --host 0.0.0.0 --port \$SERVICE_API_ACCESS_PORT > /home/.devbox/logs/backend.logs 2>&1 &
|
uvicorn freeleaps.webapi.main:app --reload --host 0.0.0.0 --port \$SERVICE_API_ACCESS_PORT > /home/.devbox/logs/backend.logs 2>&1 &
|
||||||
BACKEND_PID=\$!
|
BACKEND_PID=\$!
|
||||||
|
|
||||||
# Save BACKEND_PID to a file \${WORKING_HOME}/.backend.pid: Stores the process id of backend process.
|
# Save BACKEND_PID to a file \${WORKING_HOME}/.backend.pid: Stores the process id of backend process.
|
||||||
@ -1861,6 +1905,28 @@ if ! ps -p "\$BACKEND_PID" &>/dev/null; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Test backend and frontend services
|
||||||
|
echo "Testing backend and frontend services..."
|
||||||
|
|
||||||
|
# Test the backend service
|
||||||
|
echo "Testing backend service..."
|
||||||
|
attempt=0
|
||||||
|
max_attempts=10
|
||||||
|
while [ \$attempt -lt \$max_attempts ]; do
|
||||||
|
http_code=\$(curl -s -o /dev/null -w "%{http_code}" "http://localhost:\$SERVICE_API_ACCESS_PORT/docs")
|
||||||
|
if [ "\$http_code" -eq 200 ]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
attempt=\$((attempt+1))
|
||||||
|
sleep 5
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ \$attempt -eq \$max_attempts ]; then
|
||||||
|
echo "ERROR: Backend service is not available after \$max_attempts attempts."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Start the frontend service
|
# Start the frontend service
|
||||||
|
|
||||||
echo '============================================'
|
echo '============================================'
|
||||||
@ -1880,23 +1946,27 @@ if ! ps -p "\$FRONTEND_PID" &>/dev/null; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Test backend and frontend services
|
|
||||||
echo "Testing backend and frontend services..."
|
|
||||||
|
|
||||||
# Test the backend service
|
|
||||||
echo "Testing backend service..."
|
|
||||||
curl -s -o /dev/null -w "%{http_code}" "http://localhost:\$SERVICE_API_ACCESS_PORT/docs"
|
|
||||||
if [ "\$?" -ne 0 ]; then
|
|
||||||
echo "ERROR: Backend service is not available."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Test the frontend service
|
# Test the frontend service
|
||||||
|
WEB_APP_ACCESS_PORT=\$(cat /home/.devbox/.devbox-frontend-port)
|
||||||
|
|
||||||
echo "Testing frontend service..."
|
echo "Testing frontend service..."
|
||||||
curl -s -o /dev/null -w "%{http_code}" "http://localhost:5173/"
|
attempt=0
|
||||||
if [ "\$?" -ne 0 ]; then
|
max_attempts=10
|
||||||
echo "ERROR: Frontend service is not available."
|
while [ \$attempt -lt \$max_attempts ]; do
|
||||||
|
http_code=\$(curl -s -o /dev/null -w "%{http_code}" "http://localhost:\$WEB_APP_ACCESS_PORT/")
|
||||||
|
if [ "\$http_code" -eq 200 ]; then
|
||||||
|
echo "Frontend service is available (HTTP \$http_code)"
|
||||||
|
break
|
||||||
|
else
|
||||||
|
echo "Attempt \$((attempt+1)): Frontend not available (HTTP \$http_code). Waiting..."
|
||||||
|
attempt=\$((attempt+1))
|
||||||
|
sleep 10
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ \$attempt -eq \$max_attempts ]; then
|
||||||
|
echo "ERROR: Frontend service is not available after \$max_attempts attempts."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user