Impacted versions:
11.0

Steps to reproduce:
Run either 11.0 branch from github or the odoo:11.0 docker image with the --dev=reload argument, and then cause a autoreload by updating python code that is watched.

Current behavior:
The odoo instance shuts down because of a KeyboardInterrupt():

    skynet:~/odoo/odoo-git$ docker run -v /home/rakete/odoo/addons:/mnt/extra-addons -v /home/rakete/odoo/etc/odoo:/etc/odoo -p 8069:8069 --name odoo-dev --link odoo-db:db -t odoo-dev:latest -- --dev=reload
    2017-11-23 19:58:02,483 1 INFO ? odoo: Odoo version 11.0-20171030
    2017-11-23 19:58:02,483 1 INFO ? odoo: Using configuration file at /etc/odoo/odoo.conf
    2017-11-23 19:58:02,483 1 INFO ? odoo: addons paths: ['/var/lib/odoo/addons/11.0', '/mnt/extra-addons', '/usr/lib/python3/dist-packages/odoo/addons']
    2017-11-23 19:58:02,483 1 INFO ? odoo: database: odoo@172.17.0.2:5432
    2017-11-23 19:58:02,490 1 INFO ? odoo.service.server: Watching addons folder /var/lib/odoo/addons/11.0
    2017-11-23 19:58:02,490 1 INFO ? odoo.service.server: Watching addons folder /mnt/extra-addons
    2017-11-23 19:58:02,490 1 INFO ? odoo.service.server: Watching addons folder /usr/lib/python3/dist-packages/odoo/addons
    2017-11-23 19:58:02,641 1 INFO ? odoo.service.server: AutoReload watcher running
    2017-11-23 19:58:02,642 1 INFO ? odoo.service.server: HTTP service (werkzeug) running on 0.0.0.0:8069
    2017-11-23 19:58:02,705 1 INFO ? odoo.addons.base.ir.ir_actions_report: Will use the Wkhtmltopdf binary at /usr/local/bin/wkhtmltopdf
    2017-11-23 19:58:05,499 1 INFO ? odoo.service.server: autoreload: python code updated, autoreload activated
    2017-11-23 19:58:05,500 1 INFO ? odoo.service.server: Initiating shutdown
    2017-11-23 19:58:05,500 1 INFO ? odoo.service.server: Hit CTRL-C again or send a second signal to force the shutdown.
    2017-11-23 19:58:05,501 1 INFO ? odoo.service.server: autoreload: python code updated, autoreload activated
    Traceback (most recent call last):
      File "/usr/bin/odoo", line 8, in <module>
    2017-11-23 19:58:05,502 1 INFO ? odoo.service.server: autoreload: python code updated, autoreload activated
      File "/usr/lib/python3/dist-packages/odoo/cli/command.py", line 60, in main
        o.run(args)
      File "/usr/lib/python3/dist-packages/odoo/cli/server.py", line 175, in run
        main(args)
      File "/usr/lib/python3/dist-packages/odoo/cli/server.py", line 169, in main
        rc = odoo.service.server.start(preload=preload, stop=stop)
      File "/usr/lib/python3/dist-packages/odoo/service/server.py", line 993, in start
        rc = server.run(preload, stop)
      File "/usr/lib/python3/dist-packages/odoo/service/server.py", line 335, in run
        self.stop()
      File "/usr/lib/python3/dist-packages/odoo/service/server.py", line 289, in stop
        self.httpd.shutdown()
      File "/usr/lib/python3.5/socketserver.py", line 249, in shutdown
        self.__is_shut_down.wait()
      File "/usr/lib/python3.5/threading.py", line 549, in wait
        signaled = self._cond.wait(timeout)
      File "/usr/lib/python3.5/threading.py", line 293, in wait
        waiter.acquire()
      File "/usr/lib/python3/dist-packages/odoo/service/server.py", line 214, in signal_handler
        raise KeyboardInterrupt()
    KeyboardInterrupt
    skynet:~/odoo/odoo-git$

Expected behavior:
Odoo should automatically reload the updated python file.

Fixes https://github.com/odoo/odoo/issues/21214

odoo/service/server.py
import fcntl
    import resource
    import psutil
else:
    
    signal.SIGHUP = -1
try:
    from setproctitle import setproctitle
except ImportError:
    setproctitle = lambda x: None
import odoo
from odoo.modules.module import run_unit_tests, runs_post_install
from odoo.modules.registry import Registry
from odoo.release import nt_service_name
from odoo.tools import config
from odoo.tools import stripped_sys_argv, dumpstacks, log_ormcache_stats
_logger = logging.getLogger(__name__)
try:
    import watchdog
    from watchdog.observers import Observer
    from watchdog.events import FileCreatedEvent, FileModifiedEvent, FileMovedEvent
except ImportError:
    watchdog = None
SLEEP_INTERVAL = 60     
def memory_info(process):
    """ psutil < 2.0 does not have memory_info, >= 3.0 does not have
    get_memory_info """
    pmem = (getattr(process, 'memory_info', None) or process.get_memory_info)()
    return (pmem.rss, pmem.vms)
class LoggingBaseWSGIServerMixIn(object):