要了解自己的情况:
[root@VM-8-5-centos flask+mysql的博客网站]# which conda /root/miniconda3/condabin/conda [root@VM-8-5-centos flask+mysql的博客网站]#
工作路径: /root/websites/支付系统/app.py
为了创建一个开机自启动的守护进程来运行你的 Flask 应用,你可以使用 Systemd,它是大多数现代 Linux 发行版的默认初始化系统。以下是创建 Systemd 服务单元文件的步骤,该文件将在系统启动时自动启动你的 Flask 应用。
打开终端。
创建一个新的 Systemd 服务单元文件。通常,这些文件存储在 /etc/systemd/system/
目录下。你可以使用 nano
或其他文本编辑器来创建文件:
sudo nano /etc/systemd/system/app.service
bash
sudo nano /etc/systemd/system/flask_app.service
```ini [Unit] Description=Shopping_Pay App After=network.target
[Service] Type=simple User=root Group=root WorkingDirectory=/root/websites/支付系统 Environment="PATH=/root/miniconda3/envs/blogenv/bin" ExecStart=/root/miniconda3/envs/blogenv/bin/python app.py Restart=on-failure RestartSec=5
[Install] WantedBy=multi-user.target
```
Description
:服务的描述。After
:定义服务应该在网络启动后启动。Type
:服务类型,simple
表示执行 ExecStart
指定的命令。User
:运行服务的用户,根据你的需求更改。WorkingDirectory
:你的 Flask 应用所在的目录。Environment
:设置环境变量,确保使用正确的 Python 环境。ExecStart
:启动服务的命令,确保使用正确的 Python 解释器和应用入口文件。Restart
:定义在服务失败时是否重启。RestartSec
:失败后重启前等待的时间。bash
sudo systemctl daemon-reload
bash
sudo systemctl enable flask_app.service
bash
sudo systemctl start flask_app.service
flaskuser
)有权限访问/root/websites/支付系统/
目录和执行app.py
脚本。你可以通过以下命令调整权限:sudo chown -R root:root /root/websites/支付系统/
sudo chmod +x /root/websites/支付系统/app.py
检查服务状态,确保它正在运行:
bash
sudo systemctl status flask_app.service
``` cd /root/websites (base) [root@VM-8-5-centos ~]# cd /root/websites (base) [root@VM-8-5-centos websites]# sudo nano /etc/systemd/system/flask_app.service (base) [root@VM-8-5-centos websites]# source /etc/systemd/system/flask_app.service -bash: /etc/systemd/system/flask_app.service: No such file or directory (base) [root@VM-8-5-centos websites]# sudo systemctl daemon-reload (base) [root@VM-8-5-centos websites]# sudo systemctl enable flask_app.service Failed to execute operation: No such file or directory (base) [root@VM-8-5-centos websites]# sudo nano /etc/systemd/system/flask_app.service (base) [root@VM-8-5-centos websites]# sudo nano /etc/systemd/system/flask_app.service (base) [root@VM-8-5-centos websites]# sudo systemctl daemon-reload (base) [root@VM-8-5-centos websites]# sudo systemctl enable flask_app.service Created symlink from /etc/systemd/system/multi-user.target.wants/flask_app.service to /etc/systemd/system/flask_app.service. (base) [root@VM-8-5-centos websites]# sudo systemctl start flask_app.service (base) [root@VM-8-5-centos websites]# sudo systemctl status flask_app.service ● flask_app.service - Shopping_Pay App Loaded: loaded (/etc/systemd/system/flask_app.service; enabled; vendor preset: disabled) Active: activating (auto-restart) (Result: exit-code) since Tue 2025-03-25 15:47:56 CST; 4s ago Process: 28164 ExecStart=/root/miniconda3/envs/blogenv/bin/python app.py (code=exited, status=217/USER) Main PID: 28164 (code=exited, status=217/USER)
Mar 25 15:47:56 VM-8-5-centos systemd[1]: Unit flask_app.service entered failed state. Mar 25 15:47:56 VM-8-5-centos systemd[1]: flask_app.service failed. Mar 25 15:48:01 VM-8-5-centos systemd[1]: flask_app.service holdoff time over, sche...t. Mar 25 15:48:01 VM-8-5-centos systemd[1]: Stopped Shopping_Pay App. Mar 25 15:48:01 VM-8-5-centos systemd[1]: Started Shopping_Pay App. Mar 25 15:48:01 VM-8-5-centos systemd[1]: flask_app.service: main process exited, c...ER Mar 25 15:48:01 VM-8-5-centos systemd[1]: Unit flask_app.service entered failed state. Mar 25 15:48:01 VM-8-5-centos systemd[1]: flask_app.service failed. Hint: Some lines were ellipsized, use -l to show in full. (base) [root@VM-8-5-centos websites]# sudo chown -R flaskuser:flaskuser /root/websites/ 支付系统/ chown: invalid user: ‘flaskuser:flaskuser’ (base) [root@VM-8-5-centos websites]# sudo chmod +x /root/websites/支付系统/app.py (base) [root@VM-8-5-centos websites]# sudo chown -R flaskuser:flaskuser /root/websites/ 支付系统/ chown: invalid user: ‘flaskuser:flaskuser’ (base) [root@VM-8-5-centos websites]# sudo chown -R root:root /root/websites/支付系统/ (base) [root@VM-8-5-centos websites]# sudo systemctl status flask_app.service ● flask_app.service - Shopping_Pay App Loaded: loaded (/etc/systemd/system/flask_app.service; enabled; vendor preset: disabled) Active: activating (auto-restart) (Result: exit-code) since Tue 2025-03-25 15:52:39 CST; 787ms ago Process: 30369 ExecStart=/root/miniconda3/envs/blogenv/bin/python app.py (code=exited, status=217/USER) Main PID: 30369 (code=exited, status=217/USER)
Mar 25 15:52:39 VM-8-5-centos systemd[1]: Unit flask_app.service entered failed state. Mar 25 15:52:39 VM-8-5-centos systemd[1]: flask_app.service failed. (base) [root@VM-8-5-centos websites]# sudo nano /etc/systemd/system/flask_app.service (base) [root@VM-8-5-centos websites]# sudo nano /etc/systemd/system/flask_app.service (base) [root@VM-8-5-centos websites]# sudo systemctl daemon-reload (base) [root@VM-8-5-centos websites]# sudo chmod +x /root/websites/支付系统/app.py (base) [root@VM-8-5-centos websites]# sudo systemctl enable flask_app.service (base) [root@VM-8-5-centos websites]# sudo systemctl start flask_app.service (base) [root@VM-8-5-centos websites]# sudo systemctl status flask_app.service ● flask_app.service - Shopping_Pay App Loaded: loaded (/etc/systemd/system/flask_app.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2025-03-25 15:55:14 CST; 1min 9s ago Main PID: 31601 (python) CGroup: /system.slice/flask_app.service ├─31601 /root/miniconda3/envs/blogenv/bin/python app.py └─31602 /root/miniconda3/envs/blogenv/bin/python /root/websites/ /app.py
Mar 25 15:55:14 VM-8-5-centos python[31601]: * Serving Flask app 'app' Mar 25 15:55:14 VM-8-5-centos python[31601]: * Debug mode: on Mar 25 15:55:14 VM-8-5-centos python[31601]: WARNING: This is a development server....d. Mar 25 15:55:14 VM-8-5-centos python[31601]: * Running on all addresses (0.0.0.0) Mar 25 15:55:14 VM-8-5-centos python[31601]: * Running on http://127.0.0.1:5001 Mar 25 15:55:14 VM-8-5-centos python[31601]: * Running on http://10.2.8.5:5001 Mar 25 15:55:14 VM-8-5-centos python[31601]: Press CTRL+C to quit Mar 25 15:55:14 VM-8-5-centos python[31601]: * Restarting with stat Mar 25 15:55:15 VM-8-5-centos python[31601]: * Debugger is active! Mar 25 15:55:15 VM-8-5-centos python[31601]: * Debugger PIN: 714-975-813 Hint: Some lines were ellipsized, use -l to show in full. (base) [root@VM-8-5-centos websites]# ```
如果你的 Flask 应用在启动时遇到端口冲突,你可以修改 app.py
以使用环境变量来设置端口,然后在 Systemd 服务文件中设置该环境变量:
app.py
,使用环境变量来设置端口:python
from flask import Flask
app = Flask(__name__)
port = int(os.environ.get('FLASK_PORT', 5000))
@app.route('/')
def hello():
return 'Hello, World!'
if __name__ == '__main__':
app.run(host='0.0.0.0', port=port)
FLASK_PORT
环境变量:ini
[Service]
...
Environment="PATH=/home/root/blogenv/bin FLASK_PORT=5001"
...
这样,你的 Flask 应用就会在系统启动时自动运行,并且如果遇到错误会自动重启。确保你的服务文件中的路径、用户和环境变量与你的系统配置相匹配。
要停止由Systemd管理的服务,你可以使用以下命令:
bash
sudo systemctl stop flask_app.service
这个命令会停止flask_app.service
服务。如果你还想在下次系统启动时不再自动启动这个服务,你可以使用以下命令来禁用服务:
bash
sudo systemctl disable flask_app.service
如果你想再次启用服务以使其在系统启动时自动运行,可以使用:
bash
sudo systemctl enable flask_app.service
停止服务后,你可以使用以下命令检查服务状态,确认它已经停止:
bash
sudo systemctl status flask_app.service
如果你之后想要重启服务,可以使用:
bash
sudo systemctl restart flask_app.service
请确保在执行这些命令时具有相应的权限,通常需要root权限或使用sudo
。
通过这些命令,你可以轻松地管理由Systemd管理的服务的启动、停止和重启。
网站公告
发布时间: 2025-03-25 03:09欢迎来到我们的网站!
优惠活动
发布时间: 2025-03-25 03:09全场满100元减50元!
服务保障
发布时间: 2025-03-25 03:09我们提供24小时服务保障!
重磅来袭
发布时间: 2025-03-25 02:27帮帮派在线服务平台 4.0 重磅上线,实现了更多功能,有画图片上传等功能