diff options
Diffstat (limited to 'src/lib/Bcfg2/Server')
-rw-r--r-- | src/lib/Bcfg2/Server/Core.py | 12 |
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() |