You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Python Web应用在Ubuntu 20机器上持续运行

解决Ubuntu 20上Python Web应用持续运行的方案

方案一:用systemd配置开机自启+进程守护(官方推荐)

这是最稳定可靠的方式,能自动重启异常退出的进程,也支持开机自启。

  1. 创建systemd服务配置文件:
    sudo nano /etc/systemd/system/mywebapp.service
    
  2. 写入以下内容(替换成你的实际路径和用户名):
    [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.target
    
    说明:
    • WorkingDirectory填你的app所在目录的绝对路径
    • ExecStart里的python3路径可以用which python3命令确认
    • Restart=always会在进程崩溃、机器重启后自动拉起应用
  3. 启用并启动服务:
    sudo systemctl daemon-reload
    sudo systemctl enable mywebapp.service
    sudo systemctl start mywebapp.service
    
  4. 查看运行状态和日志:
    sudo systemctl status mywebapp.service
    sudo journalctl -u mywebapp.service -f
    

方案二:nohup+开机自启脚本(轻量简单)

如果不想用systemd,这个方式快速上手。

  1. 在mywebapp目录下创建启动脚本start_app.sh:
    #!/bin/bash
    cd /home/你的用户名/mywebapp
    nohup python3 app.py > app.log 2>&1 &
    
  2. 给脚本添加执行权限:
    chmod +x /home/你的用户名/mywebapp/start_app.sh
    
  3. 配置crontab开机自启:
    执行crontab -e,在文件末尾添加一行:
    @reboot /home/你的用户名/mywebapp/start_app.sh
    
    注意:crontab的环境变量不全,所有路径尽量用绝对路径,避免找不到命令或文件。

方案三:用Supervisor进程管理工具(功能丰富)

Supervisor是专门的进程守护工具,支持日志管理、进程状态监控。

  1. 安装Supervisor:
    sudo apt update
    sudo apt install supervisor
    
  2. 创建应用配置文件:
    sudo nano /etc/supervisor/conf.d/mywebapp.conf
    
  3. 写入配置内容:
    [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
    
  4. 重载配置并启动应用:
    sudo supervisorctl reread
    sudo supervisorctl update
    sudo supervisorctl start mywebapp
    
  5. 常用管理命令:
    # 查看应用状态
    sudo supervisorctl status mywebapp
    # 重启应用
    sudo supervisorctl restart mywebapp
    # 停止应用
    sudo supervisorctl stop mywebapp
    

内容的提问来源于stack exchange,提问作者Amira Elsayed Ismail

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 08:22:50