我在raspberry pi zero(Raspbian buster)上使用systemd启动一个python flask应用。
每次我启动一个服务,它都会启动两个python进程,而不是一个。为什么会出现这种情况?
第一个进程是第二个进程的父进程。
下面是我在 etcsystemdsystemwebsite.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
下面是homepidevapp.py中的flask应用。
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的开发服务器是和reloader一起运行的,所以它启动了两个进程。如果我添加 use_reloader=False
当启动Flask应用时,它将只启动一个进程。
app.run(host='0.0.0.0', debug=True, use_reloader=False)
更多信息在这里。为什么一个Flask应用会创建两个进程?