File: run_server.py

package info (click to toggle)
pyxrd 0.8.4-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 7,848 kB
  • sloc: python: 26,500; sh: 301; makefile: 128
file content (50 lines) | stat: -rw-r--r-- 1,411 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/usr/bin/env python3

# coding=UTF-8
# ex:ts=4:sw=4:et=on

# Copyright (c) 2013, Mathijs Dumon
# All rights reserved.
# Complete license can be found in the LICENSE file.

if __name__ == "__main__":
    import logging
    logger = logging.getLogger(__name__)
    
    import os, sys
    sys.path.insert(1, os.path.join(sys.path[0], '../..'))

    from pyxrd.data.appdirs import user_log_dir

    from pyxrd.server import settings
    from pyxrd.server.pyxrd_server import PyXRDServer
    from pyxrd.server.utils import start_script
    from pyxrd.logs import setup_logging
    setup_logging(basic=True, prefix="PYRO SERVER:")

    import Pyro5
    try:
        from Pyro5.naming import NamingError
    except (AttributeError, ImportError):
        from Pyro5.errors import NamingError


    server = PyXRDServer()

    daemon = Pyro5.Daemon()

    try:
        ns = Pyro5.locateNS()
    except NamingError:
        logger.info("NamingError encountered when trying to locate the nameserver")
        log_file = os.path.join(user_log_dir('PyXRD'), 'nameserver.log')
        start_script("start_nameserver.py", auto_kill=not settings.KEEP_SERVER_ALIVE, log_file=log_file)
        ns = Pyro5.locateNS()

    server_uri = daemon.register(server)
    ns.register(settings.PYRO_NAME, server_uri) # settings.PYRO_NAME)

    try:
        daemon.requestLoop(server.loopCondition)
    finally:
        daemon.shutdown()