uwsgi

杀死进程

sudo pkill -f uwsgi -9


启动

uwsgi --ini uwsgi.ini


优雅地重启

# using kill to send the signal
kill -HUP `cat /tmp/project-master.pid`
# or the convenience option --reload
uwsgi --reload /tmp/project-master.pid
# or if uwsgi was started with touch-reload=/tmp/somefile
touch /tmp/somefile

停止服务器

如果出于某些原因,你让uWSGI进程在前台运行,那么使用CTRL+C就可以杀死它了。
在处理后台进程时,你将需要再次使用master pidfile。SIGINT信号将会杀死uWSGI.

kill -INT `cat /tmp/project-master.pid`
# or for convenience...
uwsgi --stop /tmp/project-master.pid

读取stats

uwsgi --connect-and-read 0.0.0.0:XXX

uwsgi启动报错 chdir(): No such file or directory [core/uwsgi.c line 2591]

检查ini中chdir后的路径是否包含有空格,是的话将空格删除


使用uwsgi报错uwsgi: error while loading shared libraries: libiconv.so.2: cannot open shared object file

conda install -c conda-forge libiconv

参数详解

socket : 地址和端口号,例如:socket = 127.0.0.1:50000

processes : 开启的进程数量

workers : 开启的进程数量,等同于processes(官网的说法是spawn the specified number of workers / processes)

chdir : 指定运行目录(chdir to specified directory before apps loading)

wsgi-file : 载入wsgi-file(load .wsgi file)

stats : 在指定的地址上,开启状态服务(enable the stats server on the specified address)

threads : 运行线程。由于GIL的存在,我觉得这个真心没啥用。(run each worker in prethreaded mode with the specified number of threads)

master : 允许主进程存在(enable master process)

daemonize : 使进程在后台运行,并将日志打到指定的日志文件或者udp服务器(daemonize uWSGI)。实际上最常用的,还是把运行记录输出到一个本地文件上。

log-maxsize :以固定的文件大小(单位KB),切割日志文件。 例如:log-maxsize = 50000000 就是50M一个日志文件。

pidfile : 指定pid文件的位置,记录主进程的pid号。

vacuum : 当服务器退出的时候自动清理环境,删除unix socket文件和pid文件(try to remove all of the generated file/sockets)

disable-logging : 不记录请求信息的日志。只记录错误以及uWSGI内部消息到日志中。如果不开启这项,那么你的日志中会大量出现这种记录:

[pid: 347|app: 0|req: 106/367] 117.116.122.172 () {52 vars in 961 bytes} [Thu Jul 7 19:20:56 2016] POST /post => generated 65 bytes in 6 msecs (HTTP/1.1 200) 2 headers in 88 bytes (1 switches on core 0)

log-maxsize: 日志大小,当大于这个大小会进行切分 (Byte)

log-truncate: 当启动时切分日志


设置python的系统参数(sys.argv)

--pyargv "one two three"

该配置会将sys.argv 设为('one','two','three')。


只记录启动日志, 不记录request logging

disable-logging = true
logto = /tmp/test_card.log

你可能感兴趣的:(uwsgi)