¿Por qué una aplicación Flask crea dos procesos?

Por lo que entendí, Flask debería crear un hilo y un segundo hilo para ejecutarse en él, pero lo que veo es que siempre hay dos procesos, no hilos, en ejecución. Incluso para la aplicación más sencilla.

from flask import Flask from flask import render_template, request, flash, session, redirect app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' app.run(host="192.168.21.73", port=5000, debug=True) 

Puedes ver dos procesos en ejecución:

 ps -x 5026 ttyO0 S+ 0:01 /usr/bin/python ./test_flask.py 5031 ttyO0 Sl+ 0:45 /usr/bin/python ./test_flask.py 

¿Que está sucediendo aquí?

Es porque estás ejecutando el servidor dev con el recargador. El reloader supervisa el sistema de archivos para detectar cambios e inicia la aplicación real en un proceso diferente, por lo que hay dos procesos en total.

Puede deshabilitar el reloader estableciendo debug=False o use_reloader=False al llamar a run .