diff options
author | Narayan Desai <desai@mcs.anl.gov> | 2008-03-12 21:10:21 +0000 |
---|---|---|
committer | Narayan Desai <desai@mcs.anl.gov> | 2008-03-12 21:10:21 +0000 |
commit | 2e3775a71066ebafc796a9e5af4f661af6acd967 (patch) | |
tree | 76f3cc82df03c10fd6c87034dbf5b0ad13b49f6a /src/lib/Daemon.py | |
parent | 721c80c052afc40cb4dac5fb2ee52435129e2c6f (diff) | |
download | bcfg2-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
Diffstat (limited to 'src/lib/Daemon.py')
-rw-r--r-- | src/lib/Daemon.py | 11 |
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) |