diff --git a/gunicorn/util.py b/gunicorn/util.py index bd63f9e0..bef4b935 100644 --- a/gunicorn/util.py +++ b/gunicorn/util.py @@ -14,6 +14,7 @@ except MemoryError: import fcntl import os import pkg_resources +import random import resource import socket import sys @@ -287,3 +288,9 @@ def daemonize(): os.open(REDIRECT_TO, os.O_RDWR) os.dup2(0, 1) os.dup2(0, 2) + +def seed(): + try: + random.seed(os.urandom(64)) + except NotImplementedError: + random.seed(random.random()) diff --git a/gunicorn/workers/base.py b/gunicorn/workers/base.py index 296d478a..754a8bda 100644 --- a/gunicorn/workers/base.py +++ b/gunicorn/workers/base.py @@ -6,7 +6,6 @@ import logging import os -import random import signal import sys import traceback @@ -83,7 +82,7 @@ class Worker(object): util.set_owner_process(self.cfg.uid, self.cfg.gid) # Reseed the random number generator - random.seed() + util.seed() # For waking ourselves up self.PIPE = os.pipe()