Add user/group options for daemon mode.

This commit is contained in:
David Shrewsbury
2012-09-27 12:19:18 -04:00
parent f9fa0af9d8
commit 3b16d54fa0
2 changed files with 22 additions and 0 deletions

View File

@@ -132,6 +132,14 @@ class Options(object):
),
help='log file to use (ignored with --nodaemon)'
)
self.parser.add_argument(
'--user', dest='user',
help='user to use for daemon mode'
)
self.parser.add_argument(
'--group', dest='group',
help='group to use for daemon mode'
)
def run(self):
# We have to set defaults from the config AFTER all add_argument()

View File

@@ -14,7 +14,9 @@
# under the License.
import daemon
import grp
import lockfile
import pwd
import signal
import sys
@@ -68,6 +70,18 @@ def main():
umask=0o022,
pidfile=lockfile.FileLock(args.pid)
)
if args.user:
try:
context.uid = pwd.getpwnam(args.user).pw_uid
except KeyError:
logger.critical("Invalid user: %s" % args.user)
return 1
if args.group:
try:
context.gid = grp.getgrnam(args.group).gr_gid
except KeyError:
logger.critical("Invalid group: %s" % args.group)
return 1
with context:
server.main()