|
Lines 43-48
import univention.admincli.adduser
Link Here
|
| 43 |
import univention.admincli.admin |
43 |
import univention.admincli.admin |
| 44 |
import univention.admincli.passwd |
44 |
import univention.admincli.passwd |
| 45 |
import signal |
45 |
import signal |
|
|
46 |
from argparse import ArgumentParser |
| 46 |
try: |
47 |
try: |
| 47 |
import univention.admincli.license_check |
48 |
import univention.admincli.license_check |
| 48 |
licenseImportError = False |
49 |
licenseImportError = False |
|
Lines 82-99
class ForkingTCPServer(SocketServer.ForkingTCPServer):
Link Here
|
| 82 |
self.server_port = port |
83 |
self.server_port = port |
| 83 |
|
84 |
|
| 84 |
|
85 |
|
| 85 |
def server_main(): |
86 |
def server_main(args): |
| 86 |
"""UDM command line server.""" |
87 |
"""UDM command line server.""" |
| 87 |
global logfile |
|
|
| 88 |
try: |
| 89 |
logfile = sys.argv[1] |
| 90 |
except IndexError: |
| 91 |
logfile = '/var/log/univention/directory-manager-cmd.log' |
| 92 |
|
88 |
|
| 93 |
socket_dir = '/tmp/admincli_%s/' % os.getuid() |
89 |
socket_dir = '/tmp/admincli_%s/' % os.getuid() |
| 94 |
socket_filename = 'sock' |
90 |
socket_filename = 'sock' |
| 95 |
socket_path = (socket_dir+socket_filename) |
91 |
socket_path = (socket_dir+socket_filename) |
| 96 |
|
92 |
|
|
|
93 |
global logfile |
| 94 |
logfile = args.logfile |
| 97 |
ud.init(logfile, ud.FLUSH, ud.NO_FUNCTION) |
95 |
ud.init(logfile, ud.FLUSH, ud.NO_FUNCTION) |
| 98 |
|
96 |
|
| 99 |
runfilename = '%s.run' % socket_path |
97 |
runfilename = '%s.run' % socket_path |
|
Lines 113-122
def server_main():
Link Here
|
| 113 |
print >> sys.stderr, 'E: Server already running [Pid: %s]' % pid |
111 |
print >> sys.stderr, 'E: Server already running [Pid: %s]' % pid |
| 114 |
sys.exit(1) |
112 |
sys.exit(1) |
| 115 |
|
113 |
|
| 116 |
configRegistry = ConfigRegistry() |
114 |
ud.set_level(ud.ADMIN, args.debug_level) |
| 117 |
configRegistry.load() |
|
|
| 118 |
debug_level = configRegistry.get('directory/manager/cmd/debug/level', 1) |
| 119 |
ud.set_level(ud.ADMIN, int(debug_level)) |
| 120 |
ud.debug(ud.ADMIN, ud.INFO, 'daemon [%s] forked to background' % os.getpid()) |
115 |
ud.debug(ud.ADMIN, ud.INFO, 'daemon [%s] forked to background' % os.getpid()) |
| 121 |
|
116 |
|
| 122 |
try: |
117 |
try: |
|
Lines 129-135
def server_main():
Link Here
|
| 129 |
else: |
124 |
else: |
| 130 |
print >> sys.stderr, 'E: socket directory exists (%s)' % socket_dir |
125 |
print >> sys.stderr, 'E: socket directory exists (%s)' % socket_dir |
| 131 |
|
126 |
|
| 132 |
timeout = configRegistry.get('directory/manager/cmd/timeout') |
127 |
timeout = args.timeout |
| 133 |
if timeout: |
128 |
if timeout: |
| 134 |
if int(timeout) > 2147483647: |
129 |
if int(timeout) > 2147483647: |
| 135 |
timeout = 2147483647 |
130 |
timeout = 2147483647 |
|
Lines 249-261
def doit(sarglist, conn):
Link Here
|
| 249 |
|
244 |
|
| 250 |
|
245 |
|
| 251 |
def main(): |
246 |
def main(): |
| 252 |
pid = os.fork() |
247 |
ucr = ConfigRegistry() |
| 253 |
if pid == 0: # child |
248 |
ucr.load() |
| 254 |
os.setsid() |
249 |
debug_level = int(ucr.get('directory/manager/cmd/debug/level', 1)) |
| 255 |
server_main() |
250 |
timeout = int(ucr.get('directory/manager/cmd/timeout', 300)) |
| 256 |
sys.exit(0) |
251 |
|
| 257 |
else: # parent |
252 |
argparser = ArgumentParser() |
| 258 |
os.waitpid(pid, os.P_NOWAIT) |
253 |
argparser.add_argument('-n', dest='daemonize', action='store_false', default=True, help='Run in foreground without daemonizing') |
|
|
254 |
argparser.add_argument('-L', dest='logfile', action='store', default='/var/log/univention/directory-manager-cmd.log', help='logfile: %(default)s') |
| 255 |
argparser.add_argument('-d', dest='debug_level', action='store', type=int, default=debug_level, help='debug level: %(default)s') |
| 256 |
argparser.add_argument('-t', dest='timeout', action='store', type=int, default=timeout, help='timeout: %(default)s') |
| 257 |
args = argparser.parse_args() |
| 258 |
|
| 259 |
if args.daemonize: |
| 260 |
pid = os.fork() |
| 261 |
if pid == 0: # child |
| 262 |
os.setsid() |
| 263 |
server_main(args) |
| 264 |
sys.exit(0) |
| 265 |
else: # parent |
| 266 |
os.waitpid(pid, os.P_NOWAIT) |
| 267 |
else: |
| 268 |
server_main(args) |
| 259 |
|
269 |
|
| 260 |
if __name__ == "__main__": |
270 |
if __name__ == "__main__": |
| 261 |
main() |
271 |
main() |