Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F7159156
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
3 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/sylk-server b/sylk-server
index f7032eb..7b1d81f 100755
--- a/sylk-server
+++ b/sylk-server
@@ -1,107 +1,109 @@
#!/usr/bin/env python
# Copyright (C) 2010-2011 AG Projects. See LICENSE for details
#
import os
import signal
import sys
from optparse import OptionParser
from application import log
from application.process import process, ProcessError
+from sipsimple import __version__ as sipsimple_version
import sylk
DEBUG = False
def main():
name = 'sylk-server'
fullname = 'SylkServer'
runtime_directory = '/var/run/sylkserver'
system_config_directory = '/etc/sylkserver'
default_pid = os.path.join(runtime_directory, 'server.pid')
default_config = sylk.configuration_filename if os.path.isfile(sylk.configuration_filename) else os.path.join(system_config_directory, sylk.configuration_filename)
parser = OptionParser(version='%%prog %s' % sylk.__version__)
parser.add_option('--no-fork', action='store_false', dest='fork', default=1,
help='run the process in the foreground (for debugging)')
parser.add_option('--pid', dest='pid_file',
help='pid file ("%s")' % default_pid, metavar='File')
parser.add_option('--config-file', dest='config_file', default=default_config,
help='path to configuration file to read ("%s")' % default_config,
metavar='File')
parser.add_option('--enable-bonjour', action='store_true', dest='enable_bonjour', default=False,
help='enable Bonjour services')
(options, args) = parser.parse_args()
path, configuration_filename = os.path.split(options.config_file)
if path:
system_config_directory = path
process.system_config_directory = system_config_directory
sylk.configuration_filename = process.config_file(options.config_file)
pid_file = options.pid_file or default_pid
# when run in foreground, do not require root access because of /var/run/sylkserver
if not options.fork:
process._runtime_directory = None
else:
try:
process.runtime_directory = runtime_directory
process.daemonize(pid_file)
except ProcessError, e:
log.fatal("Cannot start %s: %s" % (fullname, e))
sys.exit(1)
log.start_syslog(name)
if sylk.configuration_filename:
log.msg("Starting %s %s, config=%s" % (fullname, sylk.__version__, sylk.configuration_filename))
else:
log.msg("Starting %s %s, with no configuration file" % (fullname, sylk.__version__))
+ log.msg("Using SIP SIMPLE SDK version %s" % sipsimple_version)
try:
if not options.fork and DEBUG:
from application.debug.memory import memory_dump
from sylk.server import SylkServer
server = SylkServer()
except Exception, e:
log.fatal("failed to create %s: %s" % (fullname, e))
log.err()
sys.exit(1)
def stop_server(*args):
if not server.stopping_event.is_set():
log.msg('Stopping SylkServer...')
server.stop()
process.signals.add_handler(signal.SIGTERM, stop_server)
process.signals.add_handler(signal.SIGINT, stop_server)
try:
server.start()
while not server.stopping_event.wait(9999):
pass
server.stop_event.wait(5)
if server.stop_event.is_set():
log.msg("%s stopped" % fullname)
else:
log.msg('Forcefully exiting SylkServer...')
os._exit(1)
except Exception, e:
log.fatal("failed to run %s: %s" % (fullname, e))
log.err()
sys.exit(1)
if not options.fork and DEBUG:
print "---------------------"
memory_dump()
print "---------------------"
if __name__ == "__main__":
main()
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Sat, Nov 23, 3:15 AM (13 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3408639
Default Alt Text
(3 KB)
Attached To
Mode
rSYLK SylkServer
Attached
Detach File
Event Timeline
Log In to Comment