当前位置: 首页 > news >正文

在 Linux 中开启 Flask 项目持续运行

在这里插入图片描述

在 Linux 中开启 Flask 项目持续运行

在部署 Flask 项目时,情况往往并不是那么理想。默认情况下,关闭 SSH 终端后,Flask 服务就停止了。这时,您需要找到一种方法在 Linux 服务器上实现持续运行 Flask 项目,并在服务器重启后自动重新启动。

本文将介绍两种方法来帮助您在 Linux 服务器上持续运行 Flask 项目。第一种方法是使用进程管理工具(如 Supervisor 或 Systemd),第二种方法是使用 nohup 命令。下面将以 Ubuntu 22.04 系统为例,逐一介绍这两种方法。

方法一:使用 Systemd

步骤一:创建服务文件
使用 nano 或其他编辑器,在 /etc/systemd/system/ 目录下创建一个新的服务文件,例如 www.service

步骤二:编辑服务文件
www.service 服务文件中输入以下内容:

[Unit]
Description=www
After=network.target[Service]
User=root
Group=default
WorkingDirectory=/root/www/thrive_api
ExecStart=/root/www/thrive_api/venv/bin/python3 /root/www/thrive_api/main.py[Install]
WantedBy=multi-user.target
命名含义
[Unit]这是服务单元的声明部分,用于描述服务和其依赖关系
Description描述这个服务的信息,这里是 www
After指定这个服务应该在哪些其他服务之后启动,这里是在网络服务启动之后启动
[Service]这是服务相关设置的部分
[Unit]这是服务单元的声明部分,用于描述服务和其依赖关系
User指定运行服务的用户,这里是 root
Group指定运行服务的用户组,默认情况下是 default
WorkingDirectory指定服务的工作目录,这里是 /root/www/thrive_api
ExecStart指定要运行的命令,这里是在虚拟环境中执行的 Python3 脚本 /root/www/thrive_api/main.py
[Install]这是安装相关设置的部分
WantedBy指定在哪些特定的 target(目标)之下安装服务,这里是 multi-user.target,表示在多用户模式下安装
请根据您的实际情况修改这些参数。

步骤三:重新加载 Systemd 配置文件
运行以下命令重新加载 Systemd 配置文件:

sudo systemctl daemon-reload

步骤四:启动并启用服务
运行以下命令启动并启用服务:

sudo systemctl start myflaskapp
sudo systemctl enable myflaskapp

步骤五:检查服务状态
运行以下命令检查服务状态:

sudo systemctl status myflaskapp

如果服务正在运行,则应显示服务的详细信息和当前状态。

方法二:使用 nohup 命令

运行以下命令来在后台运行 Flask 项目:

nohup python app.py > /dev/null 2>&1 &

这将在后台运行 main.py 文件,并将输出重定向到 /dev/null

总结:

本文介绍了两种在 Linux 服务器上实现持续运行 Flask 项目的方法。第一种方法使用进程管理工具(如 Supervisor 或 Systemd),第二种方法使用 nohup 命令。使用这些方法可以使 Flask 项目在关闭 SSH 终端后仍然持续运行,并在服务器重启后自动重新启动。

http://www.lryc.cn/news/276284.html

相关文章:

  • 考研个人经验总结【心理向】
  • 如何在CentOS安装SQL Server数据库并通过内网穿透工具实现公网访问
  • jupyter内核错误
  • 设计模式的艺术P1基础—2.3 类之间的关系
  • 工业无人机行业研究:预计2025年将达到108.2亿美元
  • PCA主成分分析算法
  • Hyperledger Fabric 权限策略和访问控制
  • Day28 回溯算法part04 93. 复原IP地址 78. 子集 90. 子集 II
  • Linux系统常用的安全优化
  • Vue-4、单向数据绑定与双向数据绑定
  • 【Flutter 开发实战】Dart 基础篇:常用运算符
  • C++:ifstream通过getline读取文件会忽略最后一行空行
  • 力扣123. 买卖股票的最佳时机 III
  • Vue3:vue-cli项目创建
  • C# .Net学习笔记—— 异步和多线程(Task)
  • Python从入门到网络爬虫(读写Excel详解)
  • Mysql之子查询、连接查询(内外)以及分页查询
  • 计算机的存储单位
  • 设备树文件中的设备节点
  • 文件管理工具.netcore资源文件管理
  • go-carbon v2.3.4 发布,轻量级、语义化、对开发者友好的 Golang 时间处理库
  • vue3 内置组件
  • MFC如何动态创建button按钮并添加点击事件
  • Qt - QML框架
  • Python+Flask+MySQL的图书馆管理系统【附源码,运行简单】
  • Module-Federation[微前端]
  • Spring 动态数据源事务处理
  • WSL2-Ubuntu22.04子系统图形化界面搭建与远程桌面连接
  • 【sklearn练习】model常用属性和功能
  • IO类day01