]> kaliko git repositories - python-daemon.git/blobdiff - src/daemon.py
Writting pid before decoupling ain't working. Setting umask behaves better.
[python-daemon.git] / src / daemon.py
index 787cb65681ae720fbfe48e0d5e8da86239d52c19..c3ec53919d29a5439a27f6ea2549a5c9bc17dbb5 100644 (file)
@@ -28,6 +28,7 @@ class Daemon(object):
         self.stdout = stdout
         self.stderr = stderr
         self.pidfile = pidfile
+        self.umask = 0
 
     def daemonize(self):
         """
@@ -47,7 +48,7 @@ class Daemon(object):
         # Decouple from parent environment
         os.chdir("/")
         os.setsid()
-        os.umask(0)
+        self.umask = os.umask(0)
 
         # Do second fork
         try:
@@ -79,12 +80,14 @@ class Daemon(object):
             return
         pid = str(os.getpid())
         try:
+            os.umask(self.umask)
             file(self.pidfile, 'w').write('%s\n' % pid)
             #except IOError, wpid_err:
         except Exception, wpid_err:
             sys.stderr.write(u'Error trying to write pid file to %s: %s\n' %
                    (unicode(self.pidfile, 'utf-8'), wpid_err))
             sys.exit(1)
+        os.umask(0)
         atexit.register(self.delpid)
 
     def signal_management(self):
@@ -95,7 +98,7 @@ class Daemon(object):
         sys.exit(1)
 
     def delpid(self):
-        os.remove(self.pidfile)
+        os.unlink(self.pidfile)
 
     def start(self):
         """