通过systemd服务启动烧瓶

时间:2020-02-25 18:28:27

标签: python ubuntu flask service systemd

有一个systemd服务文件'/etc/systemd/system/flask-app.service:

[Unit]
Description="flask-app"
After=network.target

[Service]
User=root
WorkingDirectory=/root/FlaskApp/
Environment=/root/FlaskApp/flask-app/bin
ExecStart=/root/FlaskApp/flask-app/bin/flask run --host=0.0.0.0
Restart=on-failure

[Install]
WantedBy=multi-user.target

sudo service flask-app start之后什么也没有发生,并且systemctl status没有提供任何特定信息。 但是,当我通过控制台运行 ExecStart 命令(/root/FlaskApp/flask-app/bin/flask run --host=0.0.0.0)时,服务将启动。

P.S。我已导出变量 FLASK_APP = flask-app.py

P.P.S。我的烧瓶应用是在venv创建的。

2 个答案:

答案 0 :(得分:0)

创建文件后,执行

sudo systemctl deamon-reload

服务文件中的一些更正。

  1. 如果您不打算为ExecStart =属性使用相对路径,则不需要WorkingDirectory = / root / FlaskApp/。
  2. “环境”属性的使用与您正在执行的操作有所不同。 Check

答案 1 :(得分:0)

对于我的 Pi3,我使用了下一个命令:

  • sudo systemctl start myscript.service(不用.service也能启动)
  • sudo systemctl status myscript.service(检查发生了什么)
  • sudo systemctl enable myscript.service(如果一切正常,则允许自动启动)

这里有 https://www.raspberrypi.org/documentation/linux/usage/systemd.md 的更多细节。