栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

基于环境变量(.env) Flask + Gunicorn + Systemctl 服务部署与配置(含示例代码)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于环境变量(.env) Flask + Gunicorn + Systemctl 服务部署与配置(含示例代码)

基于 .env 下的 Flask + gunicorn + systemctl 服务部署配置如下

1、创建 Flask 服务管理脚本. 具体示例如下,

# 打开服务目录
$ cd /etc/systemd/system/

# 后缀名必须 .service
$ vim application-alias.service
# 复制如下代码到 application-alias.service 到改文件保存且退出(:wq)
[Unit]
Description=gunicorn daemon
After=network.target


[Service]
WorkingDirectory=/applicaton-path/
EnvironmentFile=/applicaton-path/.env
ExecStart=/applicaton-path/venv/bin/gunicorn 
--worker-class=gevent 
--workers 7 
--error-logfile /var/log/application-alias/error.log  
--bind 127.0.0.1:8000 run:app 
--access-logfile  /var/log/application-alias/access.log 
--worker-connections 1500 
--backlog 2048 
--timeout 30 
--graceful-timeout 30 
--keep-alive 3
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
PrivateTmp=true


[Install]
WantedBy=multi-user.target

2、启动 application-alias 项目服务

1)、重新加载所有服务配置,如下命令:

# 只要有.service 服务配置更新, 必须执行改命令才会生效
$ systemctl daemon-reload
# 如果执行 systemctl daemon-reload 此命令,直接 sudo systemctl start application-alias.service 会报如下错误
# Warning: The unit file, source configuration file or drop-ins of gunicorn.service changed on disk. Run 'systemctl daemon-reload' to reload units.

2)、启动服务、赞同服务、重启服务、查看服务运行状态

# 服务状态或者查看日志等
$ sudo systemctl status application-alias.service

# 输出内容开始
gunicorn.service - gunicorn daemon
   Loaded: loaded (/etc/systemd/system/application-alias.service; disabled; vendor preset: enabled)
   Active: active (running) since Sun 2021-09-26 17:20:51 CST; 12min ago
 Main PID: 21784 (gunicorn)
    Tasks: 8 (limit: 4915)
   CGroup: /system.slice/gunicorn.service
           ├─21784 /applicaton-path/venv/bin/python3 /applicaton-path/venv/bin/gunicorn --worker-class=gevent --workers 7 --error
           ├─21812 /applicaton-path/venv/bin/python3 /applicaton-path/venv/bin/gunicorn --worker-class=gevent --workers 7 --error
           ├─21813 /applicaton-path/venv/bin/python3 /applicaton-path/venv/bin/gunicorn --worker-class=gevent --workers 7 --error
           ├─21814 /applicaton-path/venv/bin/python3 /applicaton-path/venv/bin/gunicorn --worker-class=gevent --workers 7 --error
           ├─21815 /applicaton-path/venv/bin/python3 /applicaton-path/venv/bin/gunicorn --worker-class=gevent --workers 7 --error
           ├─21817 /applicaton-path/venv/bin/python3 /applicaton-path/venv/bin/gunicorn --worker-class=gevent --workers 7 --error
           ├─21818 /applicaton-path/venv/bin/python3 /applicaton-path/venv/bin/gunicorn --worker-class=gevent --workers 7 --error
           └─21819 /applicaton-path/venv/bin/python3 /applicaton-path/venv/bin/gunicorn --worker-class=gevent --workers 7 --error
# 输出内容结束

# 暂停服务
$ sudo systemctl stop application-alias.service

# 启动服务
$ sudo systemctl start application-alias.service

# 重启服务
$ sudo systemctl restart application-alias.service

3、Systemctl 可以管理其他Java、php 等服务,只要时有服务进程管理都可以用改Systemctl 管理

1)启动Java 服务脚本例如下

[Unit]
Description=foundation
After=syslog.target

[Service]
# 当前用户
User=root
ExecStart=/usr/bin/java -jar /application-alias.jar
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

What is Systemctl? An In-Depth Overview

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/271059.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号