title: Flask APP - ValueError: signal only works in main thread
body: <p>I try to create a simple flask app:</p>
  
  <pre><code>from flask import Flask
  
  app = Flask(__name__)
  
  if __name__ == '__main__':
    app.run()
  </code></pre>
  
  <p>but when I add the debug: </p>
  
  <pre><code>FLASK_APP = run.py
  FLASK_ENV = development
  FLASK_DEBUG = 1
  </code></pre>
  
  <p>I got the following error:</p>
  
  <p><strong>ValueError: signal only works in main thread</strong></p>
  
  <p>here the full stacktrace</p>
  
  <pre><code>FLASK_APP = run.py
  FLASK_ENV = development
  FLASK_DEBUG = 1
  In folder c:/MyProjectPath/api
  c:\MyProjectPath\api\venv\Scripts\python.exe -m flask run
   * Serving Flask-SocketIO app "run.py"
   * Forcing debug mode on
   * Restarting with stat
   * Debugger is active!
   * Debugger PIN: 283-122-745
  Exception in thread Thread-1:
  Traceback (most recent call last):
    File "c:\appdata\local\programs\python\python37\Lib\threading.py", line 917, in _bootstrap_inner
      self.run()
    File "c:\appdata\local\programs\python\python37\Lib\threading.py", line 865, in run
      self._target(*self._args, **self._kwargs)
    File "c:\MyProjectPath\api\venv\lib\site-packages\flask_socketio\cli.py", line 59, in run_server
      return run_command()
    File "c:\MyProjectPath\api\venv\lib\site-packages\click\core.py", line 764, in __call__
      return self.main(*args, **kwargs)
    File "c:\MyProjectPath\api\venv\lib\site-packages\click\core.py", line 717, in main
      rv = self.invoke(ctx)
    File "c:\MyProjectPath\api\venv\lib\site-packages\click\core.py", line 956, in invoke
      return ctx.invoke(self.callback, **ctx.params)
    File "c:\MyProjectPath\api\venv\lib\site-packages\click\core.py", line 555, in invoke
      return callback(*args, **kwargs)
    File "c:\MyProjectPath\api\venv\lib\site-packages\click\decorators.py", line 64, in new_func
      return ctx.invoke(f, obj, *args, **kwargs)
    File "c:\MyProjectPath\api\venv\lib\site-packages\click\core.py", line 555, in invoke
      return callback(*args, **kwargs)
    File "c:\MyProjectPath\api\venv\lib\site-packages\flask\cli.py", line 771, in run_command
      threaded=with_threads, ssl_context=cert)
    File "c:\MyProjectPath\api\venv\lib\site-packages\werkzeug\serving.py", line 812, in run_simple
      reloader_type)
    File "c:\MyProjectPath\api\venv\lib\site-packages\werkzeug\_reloader.py", line 267, in run_with_reloader
      signal.signal(signal.SIGTERM, lambda *args: sys.exit(0))
    File "c:\appdata\local\programs\python\python37\Lib\signal.py", line 47, in signal
      handler = _signal.signal(_enum_to_int(signalnum), _enum_to_int(handler))
  ValueError: signal only works in main thread
  </code></pre>