各位好,我是AIGC创意人 竹相左边
书接上文,上一篇文章介绍了如何从零开始借助ChatGPT在服务器里搭建一个网页flask应用工具。
ChatGPT给了我成功可用的代码以及正确配置了结构树。
给新朋友介绍下我做了一个什么?
这个网页的作用就是 填写邮箱后 自动发送作者分享的工具包资料。
作为一个知识型作者,我认为这个工具应该是必备的。
---
今天分享的主要内容是,后期调试经验记录与总结。因为我也是一边遇到问题一边解决问题。
好记性不如烂笔头。有兴趣的朋友可以体验一下。
问题背景:
1. 项目实测 运行 python app.py 可以正确打开项目
2. 设置了服务器重启项目自启动之后,网址就进不去了。
3.现在希望解决问题,最终实现,服务器重启了项目也会自动重启,保证稳定持续服务。
重点代码:
首先每次进入服务,记得激活虚拟环境
进入项目目录:
cd ~/email9189
激活虚拟环境: 如果你的虚拟环境文件夹名为 venv
,可以使用以下命令激活:
source venv/bin/activate
启动 Flask 应用: 使用以下命令启动你的应用:
python app.py
激活了虚拟环境后,再开始更改配置这些。因为服务器里还有别的项目。
检查系统服务配置文件:
sudo systemctl status my_project
停止服务:
sudo systemctl stop my_project
禁用自启动:
sudo systemctl disable my_project
确认服务已停止:
sudo systemctl status my_project
如果需要,重新启动项目:
python app.py
一个常见错误类型,项目无法启动,多半是端口被占用了
相关的检测修复代码如下:
查找占用端口的进程: 使用以下命令查找哪个进程正在使用端口 9189:
sudo lsof -i :9189
停止占用端口的进程: 找到占用端口的进程后,记下其 PID(进程 ID),然后使用以下命令停止它:
sudo kill <PID>
将 <PID>
替换为实际的进程 ID。
如果你不想停止当前使用端口的进程,也可以修改 Flask 应用使用其他端口,比如 9190,方法是修改代码中的启动端口配置。例如:
app.run(port=9190)
当手动启动配置好之后,就是重新设置 自动启动的内容,保持稳定的提供服务
创建服务文件:
sudo nano /etc/systemd/system/my_project.service
在文件中添加以下内容:
[Unit]
Description=My Flask Project
After=network.target
[Service]
User=root
WorkingDirectory=/root/email9189
Environment="PATH=/root/email9189/venv/bin"
ExecStart=/root/email9189/venv/bin/python app.py
Restart=always
[Install]
WantedBy=multi-user.target
-
保存并退出编辑器(按
Ctrl + X
,然后按Y
确认保存)。
重新加载 systemd 配置:
sudo systemctl daemon-reload
启用服务自启动:
sudo systemctl enable my_project
启动服务:
sudo systemctl start my_project
检查服务状态:
sudo systemctl status my_project
要停止通过 systemd 启动的项目,可以使用以下命令:
停止服务:
sudo systemctl stop my_project
修改配置文件或项目文件:
sudo nano /etc/systemd/system/my_project.service
或者直接修改项目文件,例如 app.py
。
修改完成后,重新加载 systemd 配置:
sudo systemctl daemon-reload
重新启动服务:
sudo systemctl start my_project