前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >centos将uwsgi添加为系统服务

centos将uwsgi添加为系统服务

作者头像
静默加载
发布2020-05-29 10:53:01
8220
发布2020-05-29 10:53:01
举报
文章被收录于专栏:振兴的Android修炼手册

在我们运行或者调试uwsgi的时候:

代码语言:javascript
复制
uwsgi --socket 0.0.0.0:5000 --protocol=http -w myproject:app
uwsgi --ini myproject.ini

如果Ctrl+C或者退出ssh链接,都会导致uwsgin进程关闭。 这时,我们需要进程管理软件管理 uwsgi 进程的运行了。Ubuntu 自带的 systemd 是最简单的方法,可以将我们的项目变为系统服务。首先创建 myproject.service 文件 sudo vim /etc/systemd/system/myproject.service

代码语言:javascript
复制
[Unit]
Description=uWSGI instance to serve myproject
After=network.target

[Service]
[Unit]
Description=uWSGI instance to serve myproject
After=network.target

[Service]
WorkingDirectory=/root/PythonWorkSpace/myproject
ExecStart=/usr/bin/uwsgi --ini /root/PythonWorkSpace/myproject/uwsgi.ini
ExecStop=/usr/bin/uwsgi --stop /root/PythonWorkSpace/myproject/uwsgi.pid
ExecReload=/usr/bin/uwsgi --reload /root/PythonWorkSpace/myproject/uwsgi.pid
[Install]
WantedBy=multi-user.target

  • [Unit]部分主要是对这个服务的说明,内容包括Description和After,Description用于描述服务,After用于描述服务类别

  • [Service]部分是服务的关键,是服务的一些具体运行参数的设置
  • WorkingDirectory: 你的项目目录。
  • ExecStart:服务启动的代码
  • ExecReload:重启命令
  • ExecStop:停止命令
  • WantedBy=multi-user.target:指明会跟随系统启动而启动该服务。

  • 注意以上所有路径为绝对路径。

接下来可以愉快的启动了(myproject 就是 myproject.service 文件名去掉扩展名):

代码语言:javascript
复制
systemctl start myproject.service
systemctl reload myproject.service
systemctl stop myproject.service

  • 一个自己遇到坑 uwsgi的路径必须是自己编译是的venv环境下的uwsgi,要不然启动之后找不到Flask项目中的依赖包。

参考: 管理uWSGI服务器

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档