[Uludag-commits] r15315 - trunk/staj-projeleri/buildfarm
uludag-commits at pardus.org.tr
uludag-commits at pardus.org.tr
5 Eyl 2007 Çar 14:47:57 EEST
Author: ozan.caglayan
Date: Wed Sep 5 14:47:57 2007
New Revision: 15315
Modified:
trunk/staj-projeleri/buildfarm/server.py
Log:
buildfarm can now be run in daemon mode. logs every activity into /var/log/buildfarmd.log
Modified: trunk/staj-projeleri/buildfarm/server.py
=================================================================
--- trunk/staj-projeleri/buildfarm/server.py (original)
+++ trunk/staj-projeleri/buildfarm/server.py Wed Sep 5 14:47:57 2007
@@ -42,6 +42,7 @@
# "SocketServer.py" cleans the zombies just after a new connection request
# This function overrides the SIGCHLD handler for immediate clean-up.
+ # FIXME: Breaks repomanager.py/updateRepositories() -> Errno 10
def overrideHandler(self):
def SIGCHLDHandler(signum,frame):
# dummy wrapper for calling collect_children()
@@ -122,31 +123,41 @@
if __name__ == "__main__":
- ## Add stream redirections
- #try:
- # pid = os.fork()
- # if pid > 0:
- # # Exit first parent
- # sys.exit(0)
- #except OSError, e:
- # print >> sys.stderr, "fork() failed: %d (%s)" % (e.errno, e.strerror)
- # sys.exit(1)
- #
- ## Decouple from parent environment
- ##os.chdir("/")
- #os.setsid()
- #os.umask(0)
- #
- ## Do second fork
- #try:
- # pid = os.fork()
- # if pid > 0:
- # # Exit from second parent
- # sys.exit(0)
- #except OSError, e:
- # print >> sys.stderr, "fork() failed: %d (%s)" % (e.errno, e.strerror)
- # sys.exit(1)
- #
- ## Start the daemon main loop
+ try:
+ pid = os.fork()
+ if pid > 0:
+ # Exit first parent
+ sys.exit(0)
+ except OSError, e:
+ print >> sys.stderr, "fork() failed: %d (%s)" % (e.errno, e.strerror)
+ sys.exit(1)
+
+ # Decouple from parent environment
+ #os.chdir("/")
+ os.setsid()
+ os.umask(0)
+
+ # Do second fork
+ try:
+ pid = os.fork()
+ if pid > 0:
+ # Exit from second parent
+ sys.exit(0)
+ except OSError, e:
+ print >> sys.stderr, "fork() failed: %d (%s)" % (e.errno, e.strerror)
+ sys.exit(1)
+
+ # Close current standard stream fd's
+ os.close(sys.stdin.fileno())
+ os.close(sys.stdout.fileno())
+ os.close(sys.stderr.fileno())
+
+ # 384 is the bitwise or of S_IRUSR and S_IWUSR
+ out = os.open(config.daemonLog, os.O_WRONLY|os.O_CREAT|os.O_APPEND, 384)
+
+ # Redirect stdout and stderr to daemon log file
+ os.dup2(out, sys.stdout.fileno())
+ os.dup2(out, sys.stderr.fileno())
+ ## Start the daemon main loop
runServer()
Uludag-commits mesaj listesiyle ilgili
daha fazla bilgi