summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/BuiltinCore.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/Bcfg2/Server/BuiltinCore.py')
-rw-r--r--src/lib/Bcfg2/Server/BuiltinCore.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/lib/Bcfg2/Server/BuiltinCore.py b/src/lib/Bcfg2/Server/BuiltinCore.py
index ebd426802..61edd9cf7 100644
--- a/src/lib/Bcfg2/Server/BuiltinCore.py
+++ b/src/lib/Bcfg2/Server/BuiltinCore.py
@@ -1,5 +1,6 @@
""" the core of the builtin bcfg2 server """
+import os
import sys
import time
import socket
@@ -9,6 +10,18 @@ from Bcfg2.Compat import xmlrpclib, urlparse
from Bcfg2.SSLServer import XMLRPCServer
+class PidFile(object):
+ """ context handler to write the pid file """
+ def __init__(self, pidfile):
+ self.pidfile = pidfile
+
+ def __enter__(self):
+ open(self.pidfile, "w").write("%s\n" % os.getpid())
+
+ def __exit__(self, exc_type, exc_value, exc_traceback):
+ os.unlink(self.pidfile)
+
+
class Core(BaseCore):
""" The built-in server core """
name = 'bcfg2-server'
@@ -16,7 +29,8 @@ class Core(BaseCore):
def __init__(self, setup):
BaseCore.__init__(self, setup)
self.server = None
- self.context = daemon.DaemonContext()
+ self.context = \
+ daemon.DaemonContext(pidfile=PidFile(self.setup['daemon']))
def _dispatch(self, method, args, dispatch_dict):
"""Custom XML-RPC dispatcher for components.