Systemd 启动重复的 python 个进程

Systemd launches duplicate python processes

我正在使用 systemd 在 raspberry pi zero(Raspbian buster) 上启动一个 python flask 应用程序。

每次我启动服务时,它都会启动两个 python 进程,而不是一个。 为什么会这样?

第一个进程是第二个进程的父进程。

这是我在 /etc/systemd/system/website.service:

中的服务定义
[Unit]
Description=Website
After=network.target

[Service]
User=root
WorkingDirectory=/home/pi/dev
ExecStart=python /home/pi/dev/app.py
Restart=always

[Install]
WantedBy=multi-user.target

这是 /home/pi/dev/app.py

中的烧瓶应用程序
from flask import Flask
app = Flask(__name__)


@app.route('/')
def hello():
    return "Hello World!"

if __name__ == '__main__':
    app.run(host='0.0.0.0', debug=True)

我找到了答案,Flask 的开发服务器是 运行 重新加载器,因此它启动了两个进程。如果我在启动 Flask 应用程序时添加 use_reloader=False,它只会启动一个进程。

app.run(host='0.0.0.0', debug=True, use_reloader=False)

更多信息在这里: