summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ipa-server/ipa-gui/ipa-webgui33
-rw-r--r--ipa-server/ipa-gui/ipa-webgui.cfg12
2 files changed, 29 insertions, 16 deletions
diff --git a/ipa-server/ipa-gui/ipa-webgui b/ipa-server/ipa-gui/ipa-webgui
index f1608908..c8e3d058 100644
--- a/ipa-server/ipa-gui/ipa-webgui
+++ b/ipa-server/ipa-gui/ipa-webgui
@@ -20,14 +20,24 @@
import os, sys
def daemonize():
- pid = os.fork()
+ # fork once so the parent can exit
+ try:
+ pid = os.fork()
+ except OSError, e:
+ raise Exception, "%s [%d]" % (e.strerror, e.errno)
+
if pid != 0:
os._exit(0)
+
# become session leader
os.setsid()
# fork again to reparent to init
- pid = os.fork()
+ try:
+ pid = os.fork()
+ except OSError, e:
+ raise Exception, "%s [%d]" % (e.strerror, e.errno)
+
if pid != 0:
os._exit(0)
@@ -60,6 +70,13 @@ devel = False
if os.path.exists(os.path.join(os.path.dirname(__file__), "Makefile.am")):
devel = True
+if not devel:
+ try:
+ daemonize()
+ except Exception, e:
+ sys.stderr.write("error becoming daemon: " + str(e))
+ sys.exit(1)
+
sys.path.append("/usr/share/ipa/")
# this must be after sys.path is changed to work correctly
@@ -83,16 +100,4 @@ else:
from ipagui.controllers import Root
-if not devel:
- try:
- daemonize()
- except Exception, e:
- sys.stderr.write("error becoming daemon: " + str(e))
- sys.exit(1)
-
start_server(Root())
-
-
-
-
-
diff --git a/ipa-server/ipa-gui/ipa-webgui.cfg b/ipa-server/ipa-gui/ipa-webgui.cfg
index 7970ab86..35b0b4f5 100644
--- a/ipa-server/ipa-gui/ipa-webgui.cfg
+++ b/ipa-server/ipa-gui/ipa-webgui.cfg
@@ -64,12 +64,20 @@ format='*(asctime)s *(name)s *(levelname)s *(message)s'
[[handlers]]
[[[debug_out]]]
-class='StreamHandler'
+# Rotate weekly on Sunday. Keep 4 backups of the log
+class='TimedRotatingFileHandler'
level='DEBUG'
-args='(sys.stdout,)'
+args="('/var/log/ipa_error.log', 'w6', 1, 4)"
formatter='full_content'
[[[access_out]]]
+# For example only if one wants to duplicate the access log in TurboGears
+# Rotate weekly on Sunday. Keep 4 backups of the log
+#class='TimedRotatingFileHandler'
+#level='INFO'
+#args="('/var/log/ipa_error.log', 'w6', 1, 4)"
+#formatter='message_only'
+# By default log access to stdout which will go to /dev/null in production
class='StreamHandler'
level='INFO'
args='(sys.stdout,)'