summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNarayan Desai <desai@mcs.anl.gov>2008-03-12 21:10:21 +0000
committerNarayan Desai <desai@mcs.anl.gov>2008-03-12 21:10:21 +0000
commit2e3775a71066ebafc796a9e5af4f661af6acd967 (patch)
tree76f3cc82df03c10fd6c87034dbf5b0ad13b49f6a
parent721c80c052afc40cb4dac5fb2ee52435129e2c6f (diff)
downloadbcfg2-2e3775a71066ebafc796a9e5af4f661af6acd967.tar.gz
bcfg2-2e3775a71066ebafc796a9e5af4f661af6acd967.tar.bz2
bcfg2-2e3775a71066ebafc796a9e5af4f661af6acd967.zip
Harden daemonization against failures
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@4416 ce84e21b-d406-0410-9b95-82705330c041
-rw-r--r--src/lib/Daemon.py11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/lib/Daemon.py b/src/lib/Daemon.py
index edb8bc40e..bdce2c179 100644
--- a/src/lib/Daemon.py
+++ b/src/lib/Daemon.py
@@ -20,7 +20,7 @@ def daemonize(filename):
raise SystemExit, 1
except OSError:
pidfile.close()
- except IOError:
+ except (IOError, ValueError):
# pid file doesn't
pass
@@ -30,9 +30,12 @@ def daemonize(filename):
os.setsid() # Create new session
pid = os.fork()
if pid != 0:
- pidfile = open(filename, "w")
- pidfile.write("%i" % pid)
- pidfile.close()
+ try:
+ pidfile = open(filename, "w")
+ pidfile.write("%i" % pid)
+ pidfile.close()
+ except:
+ print "Failed to write pid file %s" % filename
os._exit(0)
os.chdir("/")
os.umask(0)