让我的flask在linux下开机自动运行

我的debian12电脑中的flask程序,每次要 cd 我的项目目录;source bin/activate; python app.py, 可是我想开机就执行,那如何处理?

第一步:创建 systemd 服务文件
1
$ sudo nano /etc/systemd/system/myflaskapp.service
第二步:填写服务内容

将下面的内容复制到文件里。你需要替换掉 User、WorkingDirectory 和 ExecStart 这三行里的实际信息,其他部分保持通用即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Unit]
Description=My Flask Application
After=network.target

[Service]
User=你的用户名
WorkingDirectory=/home/你的用户名/你的项目目录
Environment="PATH=/home/你的用户名/你的flask目录/bin"
ExecStart=/home/你的用户名/你的项目目录/venv/bin/python app.py
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

注意:Environment 那行是在设置环境变量 PATH,这能确保系统运行 app.py 时能找到虚拟环境里的 python 命令,效果等同于你手动 source bin/activate。

第三步:启动并让服务开机自启

保存文件后,依次执行以下命令:

1
2
3
4
5
6
7
8
9

# 1. 让 systemd 重新加载,识别新的服务文件
sudo systemctl daemon-reload

# 2. 启动你的 Flask 应用
sudo systemctl start myflaskapp

# 3. 设置开机自启
sudo systemctl enable myflaskapp
第四步:检查和调试

你可以用下面的命令确认服务是否正常运行:

1
2
3
4
5
6

# 查看运行状态
sudo systemctl status myflaskapp

# 查看实时日志(按 Ctrl+C 退出)
sudo journalctl -u myflaskapp -f