Fixed #6994 -- For fastcgi, set a more sensible default umask.
Also allow the umask value to be customised. Thanks, Antonis Christofides. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7800 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
abcf1cb36d
commit
ca5918e8ff
1
AUTHORS
1
AUTHORS
|
@ -94,6 +94,7 @@ answer newbie questions, and generally made Django that much better:
|
||||||
Sengtha Chay <sengtha@e-khmer.com>
|
Sengtha Chay <sengtha@e-khmer.com>
|
||||||
ivan.chelubeev@gmail.com
|
ivan.chelubeev@gmail.com
|
||||||
Bryan Chow <bryan at verdjn dot com>
|
Bryan Chow <bryan at verdjn dot com>
|
||||||
|
Antonis Christofides <anthony@itia.ntua.gr>
|
||||||
Michal Chruszcz <troll@pld-linux.org>
|
Michal Chruszcz <troll@pld-linux.org>
|
||||||
Can Burak Çilingir <canburak@cs.bilgi.edu.tr>
|
Can Burak Çilingir <canburak@cs.bilgi.edu.tr>
|
||||||
Ian Clelland <clelland@gmail.com>
|
Ian Clelland <clelland@gmail.com>
|
||||||
|
|
|
@ -40,6 +40,7 @@ Optional Fcgi settings: (setting=value)
|
||||||
workdir=DIRECTORY change to this directory when daemonizing.
|
workdir=DIRECTORY change to this directory when daemonizing.
|
||||||
outlog=FILE write stdout to this file.
|
outlog=FILE write stdout to this file.
|
||||||
errlog=FILE write stderr to this file.
|
errlog=FILE write stderr to this file.
|
||||||
|
umask=UMASK umask to use when daemonizing (default 022).
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
Run a "standard" fastcgi process on a file-descriptor
|
Run a "standard" fastcgi process on a file-descriptor
|
||||||
|
@ -73,6 +74,7 @@ FASTCGI_OPTIONS = {
|
||||||
'maxrequests': 0,
|
'maxrequests': 0,
|
||||||
'outlog': None,
|
'outlog': None,
|
||||||
'errlog': None,
|
'errlog': None,
|
||||||
|
'umask': None,
|
||||||
}
|
}
|
||||||
|
|
||||||
def fastcgi_help(message=None):
|
def fastcgi_help(message=None):
|
||||||
|
@ -159,6 +161,8 @@ def runfastcgi(argset=[], **kwargs):
|
||||||
daemon_kwargs['out_log'] = options['outlog']
|
daemon_kwargs['out_log'] = options['outlog']
|
||||||
if options['errlog']:
|
if options['errlog']:
|
||||||
daemon_kwargs['err_log'] = options['errlog']
|
daemon_kwargs['err_log'] = options['errlog']
|
||||||
|
if options['umask']:
|
||||||
|
daemon_kwargs['umask'] = int(options['umask'])
|
||||||
|
|
||||||
if daemonize:
|
if daemonize:
|
||||||
from django.utils.daemonize import become_daemon
|
from django.utils.daemonize import become_daemon
|
||||||
|
|
|
@ -2,7 +2,8 @@ import os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
if os.name == 'posix':
|
if os.name == 'posix':
|
||||||
def become_daemon(our_home_dir='.', out_log='/dev/null', err_log='/dev/null'):
|
def become_daemon(our_home_dir='.', out_log='/dev/null',
|
||||||
|
err_log='/dev/null', umask=022):
|
||||||
"Robustly turn into a UNIX daemon, running in our_home_dir."
|
"Robustly turn into a UNIX daemon, running in our_home_dir."
|
||||||
# First fork
|
# First fork
|
||||||
try:
|
try:
|
||||||
|
@ -13,7 +14,7 @@ if os.name == 'posix':
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
os.setsid()
|
os.setsid()
|
||||||
os.chdir(our_home_dir)
|
os.chdir(our_home_dir)
|
||||||
os.umask(0)
|
os.umask(umask)
|
||||||
|
|
||||||
# Second fork
|
# Second fork
|
||||||
try:
|
try:
|
||||||
|
@ -32,13 +33,13 @@ if os.name == 'posix':
|
||||||
# Set custom file descriptors so that they get proper buffering.
|
# Set custom file descriptors so that they get proper buffering.
|
||||||
sys.stdout, sys.stderr = so, se
|
sys.stdout, sys.stderr = so, se
|
||||||
else:
|
else:
|
||||||
def become_daemon(our_home_dir='.', out_log=None, err_log=None):
|
def become_daemon(our_home_dir='.', out_log=None, err_log=None, umask=022):
|
||||||
"""
|
"""
|
||||||
If we're not running under a POSIX system, just simulate the daemon
|
If we're not running under a POSIX system, just simulate the daemon
|
||||||
mode by doing redirections and directory changing.
|
mode by doing redirections and directory changing.
|
||||||
"""
|
"""
|
||||||
os.chdir(our_home_dir)
|
os.chdir(our_home_dir)
|
||||||
os.umask(0)
|
os.umask(umask)
|
||||||
sys.stdin.close()
|
sys.stdin.close()
|
||||||
sys.stdout.close()
|
sys.stdout.close()
|
||||||
sys.stderr.close()
|
sys.stderr.close()
|
||||||
|
|
Loading…
Reference in New Issue