Files
xen/tools/misc/xend
T

64 lines
1.8 KiB
Python

#!/usr/bin/env python
# -*- mode: python; -*-
#============================================================================
# Copyright (C) 2004 Mike Wray <mike.wray@hp.com>
#============================================================================
"""Xen management daemon. Lives in /usr/sbin.
Provides console server and HTTP management api.
Run:
xend start
The daemon is stopped with:
xend stop
The daemon should reconnect to device control interfaces
and recover its state when restarted.
"""
import os
import sys
from xen.xend.server import SrvDaemon
def check_twisted_version():
"""Check twisted version and print a warning if not high enough.
"""
from twisted.copyright import version
# Supported twisted release and major version.
RELEASE = 1
MAJOR = 3
(release, major, minor) = version.split('.')
release = int(release)
major = int(major)
if release > RELEASE: return
if release == RELEASE and major >= MAJOR: return
print >>sys.stderr, "*" * 60
print >>sys.stderr, "*" * 3, "Warning: Twisted version not supported: %s" % version
print >>sys.stderr, "*" * 3, "Use Twisted version %d.%d.0 or higher" % (RELEASE, MAJOR)
print >>sys.stderr, "*" * 60
def main():
check_twisted_version()
daemon = SrvDaemon.instance()
if not sys.argv[1:]:
print 'usage: %s {start|stop|restart}' % sys.argv[0]
elif os.fork():
pid, status = os.wait()
return status >> 8
elif sys.argv[1] == 'start':
return daemon.start()
elif sys.argv[1] == 'trace_start':
return daemon.start(trace=1)
elif sys.argv[1] == 'stop':
return daemon.stop()
elif sys.argv[1] == 'restart':
return daemon.stop() or daemon.start()
else:
print 'not an option:', sys.argv[1]
return 1
if __name__ == '__main__':
sys.exit(main())