mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
64 lines
1.8 KiB
Python
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())
|