【问题标题】:Systemd launches duplicate python processesSystemd 启动重复的 python 进程
【发布时间】:2020-08-21 03:44:38
【问题描述】:

我正在使用 systemd 在树莓派零(Raspbian buster)上启动一个 python 烧瓶应用程序。

每次我启动服务时,它都会启动两个 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)

【问题讨论】:

  • 停止systemd服务时ps -ef | grep python的结果是什么?
  • 在我停止服务后,两个进程都被杀死,所以ps -ef | grep python 什么也不返回。
  • 请勿发布代码、数据、错误消息等的图片 - 将文本复制或输入到问题中。 How to Ask

标签: python flask systemd


【解决方案1】:

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

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

更多信息在这里:Why does a Flask app create two process?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-25
    • 2015-11-19
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    • 2020-11-15
    相关资源
    最近更新 更多