如何给 Flask 项目创建 Systemd 服务 ?

为 Flask 应用程序创建 systemd 服务文件是确保应用程序在 Linux 系统上顺利运行的一种极好的方法,它提供了一种健壮且可靠的方式来管理应用程序进程。本文将指导您完成为 Flask 应用程序创建和配置 systemd 服务。

1: Create a Flask Application

创建一个样例 Flask 应用程序

python 复制代码
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run()

2: Test Your Flask Application

在创建服务文件之前,确保你的 Flask 应用运行时没有错误。

复制代码
python app.py

3: Creating a Systemd Service File

切换到 "/etc/systemd/system"目录

复制代码
cd /etc/systemd/system

使用文本编辑器创建一个名为 flaskapp.service 的文件。

复制代码
sudo nano flaskapp.service

将以下内容添加到文件中:

bash 复制代码
[Unit]
Description=Your Flask App
After=network.target

[Service]
User=username
Group=groupname
WorkingDirectory=/path/to/your/app
Environment="PATH=/path/to/your/app/env/bin"
ExecStart=/path/to/your/app/env/bin/gunicorn -w 4 -b 0.0.0.0:8000 app:app

[Install]
WantedBy=multi-user.target

替换 username, groupname, /path/to/your/app, app:app 为实际使用的值。

文件说明:

  • Unit : 描述服务和依赖项
  • Service : 如何启动和管理服务
  • Install : 与系统启动集成

4: Enable and Start Your Flask Service

重新加载 systemd 以读取新的服务文件

复制代码
sudo systemctl daemon-reload

启用服务开机启动

复制代码
sudo systemctl enable flaskapp.service

启动服务

复制代码
sudo systemctl start flaskapp.service

5: Monitoring and Troubleshooting

检查服务的状态

复制代码
sudo systemctl status flaskapp.service

查看服务日志

复制代码
journalctl -u flaskapp.service

我的开源项目

相关推荐
snow@li1 分钟前
Spring Boot:项目服务器完整部署教程(零基础可直接实操)
服务器·spring boot·后端
asdzx671 分钟前
Python PDF 拆分实战指南:单页拆分与按需页码范围拆分
开发语言·python·pdf
李昊哲小课7 分钟前
咖啡工坊 · FastAPI 22 章教程合集
服务器·人工智能·python·fastapi
卷无止境26 分钟前
Python 异常处理:从入门到工程实践
后端·python
garuda herb28 分钟前
生成专题页Blog--建立并返回 MySQL 数据库连接
python·mysql
AINative软件工程29 分钟前
LLM 应用的熔断降级工程实践:Circuit Breaker 不只是重试的升级版
后端·llm·ai编程
ONE_SIX_MIX32 分钟前
qwenpaw-plugin-file-tools QwenPaw增强文件工具 更新 v1.1.1
python·qwenpaw
AOwhisky36 分钟前
Python 学习笔记(第五期)——组合数据类型:列表、元组、集合与字典精讲——核心知识点自测与详解
开发语言·笔记·python·学习·云计算
程序员爱钓鱼43 分钟前
Go 开发环境安装(Windows、macOS、Linux)
后端·面试·go
程序员爱钓鱼1 小时前
Rust String 与 &str 详解:字符串所有权、借用与转换
前端·后端·rust