背景
网上找了一圈,没有把uswgi加入系统服务的脚本,我来补充一个吧。
实践基于系统CentOS6,但不限于此。
uWSGI是什么
uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。
安装
uWSGI 的安装很简单:
pip install uwsgi
服务脚本内容
vi /etc/rc.d/init.d/uwsgi
#!/bin/bash
# Comments to support chkconfig on Linux
# chkconfig: 35 85 15
# description: uwsgi is an HTTP(S) server, HTTP(S) reverse
#
# author null
#
# chmod +x /etc/rc.d/init.d/uwsgi
# chkconfig --add uwsgi
# chkconfig --level 2345 uwsgi on
#
# Change History:
# date author note
# 2016/11/16 null create, refer to nginx, and http://uwsgi-docs.readthedocs.io/en/latest/Management.html
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="uwsgi daemon"
NAME=uwsgi
DAEMON=/usr/bin/$NAME
SCRIPTNAME=/etc/init.d/$NAME
CONFFILE=/opt/nginx/conf/uwsgi.ini
PIDFILE=/var/run/uwsgi.pid
test -x $DAEMON || exit 0
d_start(){
$DAEMON --ini $CONFFILE || echo -n " already running"
}
d_stop() {
$DAEMON --stop $PIDFILE || echo -n " not running"
}
d_reload() {
$DAEMON --reload $PIDFILE || echo -n " counld not reload"
}
d_freload() {
$DAEMON --die-on-term $PIDFILE || echo -n " counld not force reload"
}
case "$1" in
start)
echo -n "Starting $DESC:$NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC:$NAME"
d_stop
echo "."
;;
reload)
echo -n "Reloading $DESC configuration..."
d_reload
echo "reloaded."
;;
force_reload)
echo -n "The official provision of the parameters, tested and found not to support..."
# d_freload
# echo "force reloaded."
echo "."
;;
restart)
echo -n "Restarting $DESC: $NAME"
d_stop
sleep 2
d_start
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force_reload}" >&2
exit 3
;;
esac
exit 0
服务管理
chmod +x /etc/rc.d/init.d/uwsgi
chkconfig --add uwsgi
chkconfig --level 2345 uwsgi on