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)
更多信息在这里:
我正在使用 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)
更多信息在这里: