def run(self, port_number, number_of_procs=0):
        """
        Create the server and run the IOLoop.

        :param int port_number: the port number to bind the server to
        :param int number_of_procs: number of processes to pass to
            Tornado's ``httpserver.HTTPServer.start``.

        If the application's ``debug`` setting is ``True``, then we are
        going to run in a single-process mode; otherwise, we'll let
        tornado decide how many sub-processes based on the value of the
        ``number_of_procs`` argument.  In any case, the application's
        *before_run* callbacks are invoked.  If a callback raises an exception,
        then the application is terminated by calling :func:`sys.exit`.

        If any ``on_start`` callbacks are registered, they will be added to
        the Tornado IOLoop for execution after the IOLoop is started.

        The following additional configuration parameters can be set on the
        ``httpserver.HTTPServer`` instance by setting them in the application
        settings: ``xheaders``, ``max_body_size``, ``max_buffer_size``.

        """
        self.start_server(port_number, number_of_procs)
        iol = ioloop.IOLoop.instance()

        try:
            self.application.start(iol)
        except Exception:
            self.logger.exception('application terminated during start, '
                                  'exiting')
            sys.exit(70)

        iol.start()
Create the server and run the IOLoop.

        :param int port_number: the port number to bind the server to
        :param int number_of_procs: number of processes to pass to
            Tornado's ``httpserver.HTTPServer.start``.

        If the application's ``debug`` setting is ``True``, then we are
        going to run in a single-process mode; otherwise, we'll let
        tornado decide how many sub-processes based on the value of the
        ``number_of_procs`` argument.  In any case, the application's
        *before_run* callbacks are invoked.  If a callback raises an exception,
        then the application is terminated by calling :func:`sys.exit`.

        If any ``on_start`` callbacks are registered, they will be added to
        the Tornado IOLoop for execution after the IOLoop is started.

        The following additional configuration parameters can be set on the
        ``httpserver.HTTPServer`` instance by setting them in the application
        settings: ``xheaders``, ``max_body_size``, ``max_buffer_size``.