django应用启动脚本
#!/bin/bash
export LD_LIBRARY_PATH="/usr/local/lib"
# 程序包目录
APP_HOME=$(readlink -f "$(dirname "$0")")
# 程序包名
APP_NAME=face
# 设置Django项目目录和虚拟环境路径(如果有)
PROJECT_DIR=${APP_HOME}/${APP_NAME}
# 日志文件路径
LOG_FILE="$APP_HOME/django.log"
# 启动Django应用
start_django() {
echo "Starting Django application..."
cd "$PROJECT_DIR" || { echo "Error: Could not change to directory $PROJECT_DIR"; exit 1; }
# 启动Django应用,并将输出重定向到日志文件
nohup env PYTHONUNBUFFERED=1 python3 manage.py runserver 0.0.0.0:8000 > "$LOG_FILE" 2>&1 &
PID=$!
# 检查Django进程是否成功启动
if ps -p $PID > /dev/null; then
echo "Django application started with PID $PID."
else
echo "Failed to start Django application."
exit 1
fi
}
# 停止Django应用
stop_django() {
echo "Stopping Django application..."
pid=$(ps aux | grep 'python3 manage.py runserver 0.0.0.0:8000' | grep -v grep | awk '{print $2}')
if [ -n "$pid" ]; then
echo "当前pid:$pid"
for id in $pid; do
kill -9 "$id"
done
echo "Django application stopped."
else
echo "Django application is not running."
fi
}
# 重启Django应用
restart_django() {
stop_django
start_django
}
# 检查Django应用状态
status_django() {
pid=$(ps aux | grep 'python3 manage.py runserver 0.0.0.0:8000' | grep -v grep | awk '{print $2}')
if [ -n "$pid" ]; then
echo "Django application is running with PID $pid."
else
echo "Django application is not running."
fi
}
# 检查参数,并执行相应的操作
if [ "$1" == "start" ]; then
start_django
elif [ "$1" == "stop" ]; then
stop_django
elif [ "$1" == "restart" ]; then
restart_django
elif [ "$1" == "status" ]; then
status_django
else
echo "Usage: $0 {start|stop|restart|status}"
exit 1
fi
exit 0还没有评论,来说两句吧
