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请注意:
浙公网安备 33010602011771号