Log when NM excepts and bombs out. merge from head.
authorFaiyaz Ahmed <faiyaza@cs.princeton.edu>
Thu, 23 Aug 2007 19:51:22 +0000 (19:51 +0000)
committerFaiyaz Ahmed <faiyaza@cs.princeton.edu>
Thu, 23 Aug 2007 19:51:22 +0000 (19:51 +0000)
tools.py

index 6b3a84b..f41f981 100644 (file)
--- a/tools.py
+++ b/tools.py
@@ -34,7 +34,10 @@ def daemon():
     os.chdir('/')
     os.umask(0)
     devnull = os.open(os.devnull, os.O_RDWR)
-    for fd in range(3): os.dup2(devnull, fd)
+    os.dup2(devnull, 0)
+    crashlog = os.open('/root/nm.stderr', os.O_RDWR | os.O_APPEND | os.O_CREAT, 0644)
+    os.dup2(crashlog, 1)
+    os.dup2(crashlog, 2)
 
 def fork_as(su, function, *args):
     """fork(), cd / to avoid keeping unused directories open, close all nonstandard file descriptors (to avoid capturing open sockets), fork() again (to avoid zombies) and call <function> with arguments <args> in the grandchild process.  If <su> is not None, set our group and user ids appropriately in the child process."""