uwsgi设置systemctl风格的启动方式

uwsgi设置systemctl风格的启动方式

1.简述

uwsgi是一个网关接口,那么做为一个启动的进程,我们如何管理它,是直接放在开机自动加载的里,感觉low的一比,还有一个问题就是进程异常崩溃,会造成什么样的结果,详情去看凉白开的supersvisor,今天我们要将它设定为一个系统服务

2.Centos7启动风格

CentOS 7继承了RHEL 7的新的特性,例如强大的systemctl,而systemctl的使用也使得以往系统服务的/etc/init.d/的启动脚本的方式就此改变,也大幅提高了系统服务的运行效率。但服务的配置和以往也发生了极大的不同。
CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,像需要开机不登陆就能运行的程序,还是存在系统服务里吧,即:/usr/lib/systemd/system目录下,并且每一个服务以 .service 结尾。

3.centos系统启动目录:

/usr/lib/systemd/system

4.开机配置

1. 添加自启动服务为:uwsgi
2. 自启动脚本以经写好
3. 本人将开机自启动的脚本放在 /etc/init.d/目录下,并加执行权限

 脚本如下:

#!/bin/bash
if [ ! -n "$1" ];then            #$1:指该脚本后跟的第一个参数,-n:判断$1是否为非空,!:取相反
    echo "Usages: sh uwsgid.sh [start|stop|restart]"
    exit 0
fi

if [ $1 = start ];then            #如果第一个参数等于start,执行下面命令
    psid=`ps aux | grep "uwsgi" | grep -v "grep" | wc -l`        
    #上面执行了启动之后,判断启动是否正常,grep -v过滤掉“grep”,使用wc -l查看输出几行
    if [[ $psid -gt 4 ]];then
        echo "uwsgi is running!"
        exit 0 
    else
      /usr/bin/uwsgi  --ini  /usr/local/nginx/html/BRMS/BRMS_uwsgi.ini
        echo "Start uwsgi service [OK]"
    fi

elif [ $1 = stop ];then
    killall -9 uwsgi
    echo "Stop uwsgi service [OK]"
elif [ $1 = restart ];then
    killall -9 uwsgi
    /usr/bin/uwsgi  --ini  /usr/local/nginx/html/BRMS/BRMS_uwsgi.ini
    echo "Restart uwsgi service [OK]"
else
    echo "Usages: sh uwsgid.sh [start|stop|restart]"
fi

5.配置systemctl风格启动方式

每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install],我写的这个服务用于开机运行uwsgi项目,具体内容如下
[root@tsingserver ~]# cd /usr/lib/systemd/system
[root@tsingserver system]# vim uwsgid.service
[Unit]
Description=uwsgid
After=network.target

[Service]
Type=forking
ExecStart=/etc/init.d/uwsgid start
ExecReload=/etc/init.d/uwsgid restart
ExecStop=/etc/init.d/uwsgid stop
PrivateTmp=true
   
[Install]
WantedBy=multi-user.target

6.配置启动目录权限

[root@djagno system]# chmod +x uwsgid.service

7.启动方式:

systemctl enable uwsgid.service   开机自启
systemctl start uwsgid.service    启动
systemctl restart uwsgid.service  重新启动

如有错误,欢迎大家指正,上面的脚本试用一个uwsgi请注意:

posted @ 2017-08-03 10:27  Cassandrahan  阅读(1485)  评论(1)    收藏  举报