Create PID directory if it is missing

This commit is contained in:
Scott Kitterman
2018-03-03 01:45:15 -05:00
parent 5a81886a5e
commit 48a44916e7
2 changed files with 13 additions and 3 deletions
+1
View File
@@ -1,4 +1,5 @@
0.9.4 UNRELEASED 0.9.4 UNRELEASED
- Create PID directory if it is missing
0.9.3 2018-03-02 0.9.3 2018-03-02
- Fixup csl dataset processing for single item lists - Fixup csl dataset processing for single item lists
+9
View File
@@ -86,6 +86,15 @@ def write_pid(milterconfig):
try: try:
f = open(milterconfig.get('PidFile'), 'w') f = open(milterconfig.get('PidFile'), 'w')
except IOError as e: except IOError as e:
if str(e)[:35] == '[Errno 2] No such file or directory':
piddir = milterconfig.get('PidFile').rsplit('/', 1)[0]
os.mkdir(piddir)
user, group = user_group(milterconfig.get('UserID'))
os.chown(piddir, user, group)
f = open(milterconfig.get('PidFile'), 'w')
if milterconfig.get('Syslog'):
syslog.syslog('Missing pid dir created: {0}'.format(piddir))
else:
if milterconfig.get('Syslog'): if milterconfig.get('Syslog'):
syslog.syslog('Unable to write pidfle {0}. IOError: {1}'.format(milterconfig.get('PidFile'), e)) syslog.syslog('Unable to write pidfle {0}. IOError: {1}'.format(milterconfig.get('PidFile'), e))
raise raise