分享一个好用的uwsgi管理脚本

2024年5月26日 12:54 by wst

服务部署

对于python的Django项目、Flask项目,一般部署的时候喜欢采用uwsgi做中转。

代码更新的时候,只需要重启uwsgi即可。那么重启脚本长什么样呢?

#!/bin/bash

# uwsgi管理脚本

# uwsgi命令的路径,根据你的安装位置进行修改
UWSGI_PATH="/home/ubuntu/miniconda3/envs/wxpay/bin/uwsgi"

# uwsgi配置文件的路径,根据你的配置文件位置进行修改
UWSGI_CONFIG="/home/ubuntu/workspace/wxmplogin/uwsgi_config.xml"

# log
UWSGI_LOG="/home/ubuntu/workspace/wxmplogin/uwsgi.log"

# pidfile
UWSGI_PIDFILE="/home/ubuntu/workspace/wxmplogin/uwsgi.pid"

# 检查uwsgi命令是否存在
if [ ! -x "$UWSGI_PATH" ]; then
    echo "uwsgi命令未找到,请检查UWSGI_PATH变量是否设置正确"
    exit 1
fi

# 根据传入的参数执行相应的操作
case "$1" in
    start)
        echo "启动uwsgi服务..."
        $UWSGI_PATH -x "$UWSGI_CONFIG" -d "$UWSGI_LOG" &
        ;;
    stop)
        echo "停止uwsgi服务..."
        # 这里使用了uwsgi的停止命令,你需要根据实际情况获取正确的停止命令
        # 例如:$UWSGI_PATH --stop /path/to/your/pidfile.pid
        $UWSGI_PATH --stop "$UWSGI_PIDFILE"
        ;;
    restart)
        echo "重启uwsgi服务..."
        $0 stop
        sleep 2
        $0 start
        ;;
    *)
        echo "使用方法:$0 {start|stop|restart}"
        exit 1
        ;;
esac

exit 0

 

本例部署的是flask,uwsgi的配置文件如下:

<uwsgi>
     <chdir>/home/ubuntu/workspace/wxmplogin</chdir>
     <home>/home/ubuntu/miniconda3/envs/wxpay</home>
     <pythonpath>/home/ubuntu/workspace/wxmplogin</pythonpath> #网站根目录
     <module>main</module>                 #Flask的主入口文件,平时是直接运行这个文件启动测试服务器的
     <callable>app</callable>              #runServer.py入口文件里的程序入口
     <socket>127.0.0.1:5000</socket>       #监听端口
     <master/>
     <processes>2</processes>              #注:跑几个线程,这里用4个线程
     <memory-report/>
     <pidfile>%(chdir)/uwsgi.pid</pidfile>
</uwsgi>

 

感谢大家的关注,如有问题,欢迎评论!

 


Comments(0) Add Your Comment

Not Comment!