Browse Source

[213-incremental] make sure sockcreator runs in a different process group.

JINMEI Tatuya 13 years ago
parent
commit
c9160954fd
1 changed files with 10 additions and 1 deletions
  1. 10 1
      src/lib/python/isc/bind10/sockcreator.py

+ 10 - 1
src/lib/python/isc/bind10/sockcreator.py

@@ -212,11 +212,20 @@ class Creator(Parser):
         env['PATH'] = path
         self.__process = subprocess.Popen(['b10-sockcreator'], env=env,
                                           stdin=remote.fileno(),
-                                          stdout=remote2.fileno())
+                                          stdout=remote2.fileno(),
+                                          preexec_fn=self.__preexec_work)
         remote.close()
         remote2.close()
         Parser.__init__(self, WrappedSocket(local))
 
+    def __preexec_work(self):
+        """Function used before running a program that needs to run as a
+        different user."""
+        # Put us into a separate process group so we don't get
+        # SIGINT signals on Ctrl-C (the boss will shut everthing down by
+        # other means).
+        os.setpgrp()
+
     def pid(self):
         return self.__process.pid