帮帮派

懒得说

手动脚本命令:在 linux 自动执行 python命令

sudo -u root /usr/bin/python3 /usr/share/nginx/html/backend/app.py

既然手动运行脚本没有问题,那么我们可以集中精力在服务文件的配置上。根据你提供的输出,你的Flask应用正在开发模式下运行,并且警告说不要在生产环境中使用开发服务器。在生产环境中,你应该使用一个更适合生产的WSGI服务器,比如Gunicorn或uWSGI。
不过,首先我们需要解决服务启动的问题。以下是修改服务文件的一些步骤:

  1. 编辑服务文件
    打开服务文件进行编辑:
    bash sudo nano /etc/systemd/system/app.service
  2. 修改服务文件
    确保服务文件的内容如下,特别是ExecStart路径和用户权限:
    ini [Unit] Description=My Python App After=network.target [Service] Type=simple User=root Group=root ExecStart=/usr/bin/python3 /usr/share/nginx/html/backend/app.py WorkingDirectory=/usr/share/nginx/html/backend StandardOutput=inherit StandardError=inherit Restart=always [Install] WantedBy=multi-user.target
    这里我假设你的脚本不需要特定的用户组权限,因此将UserGroup都设置为root。如果你的脚本需要以特定用户运行,请将UserGroup替换为相应的用户和组。
  3. 重新加载服务管理器配置
    修改完服务文件后,需要重新加载服务管理器的配置:
    bash sudo systemctl daemon-reload
  4. 重启服务
    尝试重启服务以应用更改:
    bash sudo systemctl restart app.service
  5. 检查服务状态
    检查服务是否成功启动:
    bash sudo systemctl status app.service
  6. 查看日志
    如果服务仍然没有启动,查看详细的日志信息:
    bash sudo journalctl -u app.service
    如果服务成功启动,但你希望在生产环境中运行,你应该考虑使用WSGI服务器。例如,使用Gunicorn,你可以这样修改ExecStart
ExecStart=/usr/bin/gunicorn -w 4 -b 0.0.0.0:5000 app:app

这里假设你的Flask应用对象名为app,并且位于app.py文件中。-w 4表示使用4个工作进程,-b 0.0.0.0:5000表示绑定到所有接口的5000端口。
请根据你的实际需求和环境进行相应的调整。如果你的服务仍然无法启动,请提供更多的错误信息,以便进一步诊断问题。