From adfa32b8fdbeecba5f5313fb46427a95d0d15fe2 Mon Sep 17 00:00:00 2001 From: "Chris St. Pierre" Date: Tue, 9 Oct 2012 10:21:44 -0400 Subject: create directory containing pidfile in bcfg2-server itself --- src/lib/Bcfg2/Server/Core.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/lib/Bcfg2/Server/Core.py') 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() -- cgit v1.2.3-1-g7c22