summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/Core.py
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2012-10-09 10:21:44 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2012-10-09 10:21:44 -0400
commitadfa32b8fdbeecba5f5313fb46427a95d0d15fe2 (patch)
tree1cabe44f46c5a5b9e3a77cbe83782b5d73b3c900 /src/lib/Bcfg2/Server/Core.py
parentbac5743294fbb33e2e90b9f1c13174a964f5c676 (diff)
downloadbcfg2-adfa32b8fdbeecba5f5313fb46427a95d0d15fe2.tar.gz
bcfg2-adfa32b8fdbeecba5f5313fb46427a95d0d15fe2.tar.bz2
bcfg2-adfa32b8fdbeecba5f5313fb46427a95d0d15fe2.zip
create directory containing pidfile in bcfg2-server itself
Diffstat (limited to 'src/lib/Bcfg2/Server/Core.py')
-rw-r--r--src/lib/Bcfg2/Server/Core.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/lib/Bcfg2/Server/Core.py b/src/lib/Bcfg2/Server/Core.py
index 144d226fe..0f32387d2 100644
--- a/src/lib/Bcfg2/Server/Core.py
+++ b/src/lib/Bcfg2/Server/Core.py
@@ -495,6 +495,18 @@ class BaseCore(object):
""" run the server core. note that it is the responsibility of
the server core implementation to call shutdown() """
if self.setup['daemon']:
+ # if we're dropping privs, then the pidfile is likely
+ # /var/run/bcfg2-server/bcfg2-server.pid or similar.
+ # since some OSes clean directories out of /var/run on
+ # reboot, we need to ensure that the directory containing
+ # the pidfile exists and has the appropriate permissions
+ piddir = os.path.dirname(self.setup['daemon'])
+ if not os.path.exists(piddir):
+ os.makedirs(piddir)
+ os.chown(piddir,
+ self.setup['daemon_uid'],
+ self.setup['daemon_gid'])
+ os.chmod(piddir, 420) # 0644
self._daemonize()
self._run()