如何让Python Web应用在Ubuntu 20机器上持续运行
解决Ubuntu 20上Python Web应用持续运行的方案
方案一:用systemd配置开机自启+进程守护(官方推荐)
这是最稳定可靠的方式,能自动重启异常退出的进程,也支持开机自启。
- 创建systemd服务配置文件:
sudo nano /etc/systemd/system/mywebapp.service - 写入以下内容(替换成你的实际路径和用户名):
说明:[Unit] Description=我的Web应用服务 After=network.target [Service] User=你的系统用户名 WorkingDirectory=/home/你的用户名/mywebapp ExecStart=/usr/bin/python3 app.py Restart=always RestartSec=5 [Install] WantedBy=multi-user.targetWorkingDirectory填你的app所在目录的绝对路径ExecStart里的python3路径可以用which python3命令确认Restart=always会在进程崩溃、机器重启后自动拉起应用
- 启用并启动服务:
sudo systemctl daemon-reload sudo systemctl enable mywebapp.service sudo systemctl start mywebapp.service - 查看运行状态和日志:
sudo systemctl status mywebapp.service sudo journalctl -u mywebapp.service -f
方案二:nohup+开机自启脚本(轻量简单)
如果不想用systemd,这个方式快速上手。
- 在
mywebapp目录下创建启动脚本start_app.sh:#!/bin/bash cd /home/你的用户名/mywebapp nohup python3 app.py > app.log 2>&1 & - 给脚本添加执行权限:
chmod +x /home/你的用户名/mywebapp/start_app.sh - 配置crontab开机自启:
执行crontab -e,在文件末尾添加一行:
注意:crontab的环境变量不全,所有路径尽量用绝对路径,避免找不到命令或文件。@reboot /home/你的用户名/mywebapp/start_app.sh
方案三:用Supervisor进程管理工具(功能丰富)
Supervisor是专门的进程守护工具,支持日志管理、进程状态监控。
- 安装Supervisor:
sudo apt update sudo apt install supervisor - 创建应用配置文件:
sudo nano /etc/supervisor/conf.d/mywebapp.conf - 写入配置内容:
[program:mywebapp] command=/usr/bin/python3 app.py directory=/home/你的用户名/mywebapp user=你的系统用户名 autostart=true autorestart=true stderr_logfile=/var/log/mywebapp.err.log stdout_logfile=/var/log/mywebapp.out.log - 重载配置并启动应用:
sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start mywebapp - 常用管理命令:
# 查看应用状态 sudo supervisorctl status mywebapp # 重启应用 sudo supervisorctl restart mywebapp # 停止应用 sudo supervisorctl stop mywebapp
内容的提问来源于stack exchange,提问作者Amira Elsayed Ismail
相关产品推荐
相关产品推荐

