Changeset 1826
- Timestamp:
- 11/12/07 15:39:36
- Files:
-
- trunk/cherrypy/__init__.py (modified) (1 diff)
- trunk/cherrypy/_cptree.py (modified) (1 diff)
- trunk/cherrypy/restsrv/plugins.py (modified) (8 diffs)
- trunk/cherrypy/restsrv/wspbus.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/cherrypy/__init__.py
r1824 r1826 181 181 from cherrypy import restsrv 182 182 try: 183 from cherrypy.restsrv import win32 as restsrvwin184 engine = restsrvwin.Win32Bus()183 from cherrypy.restsrv import win32 as _restsrvwin 184 engine = _restsrvwin.Win32Bus() 185 185 except ImportError: 186 186 engine = restsrv.bus trunk/cherrypy/_cptree.py
r1769 r1826 57 57 58 58 self.config = {} 59 60 def __repr__(self): 61 return "%s.%s(%r, %r)" % (self.__module__, self.__class__.__name__, 62 self.root, self.script_name) 59 63 60 64 script_name__doc = """ trunk/cherrypy/restsrv/plugins.py
r1824 r1826 108 108 def __init__(self, bus): 109 109 self.bus = bus 110 self.finalized = False 110 111 111 112 try: … … 123 124 def start(self): 124 125 """Drop privileges. Windows version (umask only).""" 125 if umask is not None: 126 old_umask = os.umask(umask) 127 self.bus.log('umask old: %03o, new: %03o' % 128 (old_umask, umask)) 126 if self.finalized: 127 self.bus.log('umask already set to: %03o' % umask) 128 else: 129 if umask is None: 130 self.bus.log('umask not set') 131 else: 132 old_umask = os.umask(umask) 133 self.bus.log('umask old: %03o, new: %03o' % 134 (old_umask, umask)) 135 self.finalized = True 129 136 else: 130 137 uid = None … … 134 141 def start(self): 135 142 """Drop privileges. UNIX version (uid, gid, and umask).""" 136 if not (uid is None and gid is None): 143 if uid is None and gid is None: 144 self.bus.log('uid/gid not set') 145 else: 137 146 if uid is None: 138 147 uid = None … … 154 163 return name, group 155 164 156 self.bus.log('Started as %r/%r' % names()) 157 if gid is not None: 158 os.setgid(gid) 159 if uid is not None: 160 os.setuid(uid) 161 self.bus.log('Running as %r/%r' % names()) 165 if self.finalized: 166 self.bus.log('Already running as: %r/%r' % names()) 167 else: 168 self.bus.log('Started as %r/%r' % names()) 169 if gid is not None: 170 os.setgid(gid) 171 if uid is not None: 172 os.setuid(uid) 173 self.bus.log('Running as %r/%r' % names()) 162 174 163 if umask is not None: 164 old_umask = os.umask(umask) 165 self.bus.log('umask old: %03o, new: %03o' % 166 (old_umask, umask)) 175 if self.finalized: 176 self.bus.log('umask already set to: %03o' % umask) 177 else: 178 if umask is None: 179 self.bus.log('umask not set') 180 else: 181 old_umask = os.umask(umask) 182 self.bus.log('umask old: %03o, new: %03o' % 183 (old_umask, umask)) 184 self.finalized = True 167 185 start.priority = 75 168 186 … … 185 203 self.stdout = stdout 186 204 self.stderr = stderr 205 self.finalized = False 187 206 188 207 def start(self): 208 if self.finalized: 209 self.bus.log('Already deamonized.') 210 189 211 # forking has issues with threads: 190 212 # http://www.opengroup.org/onlinepubs/000095399/functions/fork.html … … 193 215 # So we check for active threads: 194 216 if threading.activeCount() != 1: 195 self.bus.log('There are more than oneactive threads. '196 'Daemonizing now may cause strange failures.' )197 self.bus.log(str(threading.enumerate()))217 self.bus.log('There are %r active threads. ' 218 'Daemonizing now may cause strange failures.' % 219 threading.enumerate()) 198 220 199 221 # See http://www.erlenstar.demon.co.uk/unix/faq_2.html#SEC16 … … 247 269 248 270 self.bus.log('Daemonized to PID: %s' % os.getpid()) 271 self.finalized = True 249 272 start.priority = 65 250 273 … … 256 279 self.bus = bus 257 280 self.pidfile = pidfile 281 self.finalized = False 258 282 259 283 def start(self): 260 284 pid = os.getpid() 261 open(self.pidfile, "wb").write(str(pid)) 262 self.bus.log('PID %r written to %r.' % (pid, self.pidfile)) 285 if self.finalized: 286 self.bus.log('PID %r already written to %r.' % (pid, self.pidfile)) 287 else: 288 open(self.pidfile, "wb").write(str(pid)) 289 self.bus.log('PID %r written to %r.' % (pid, self.pidfile)) 290 self.finalized = True 263 291 start.priority = 70 264 292 265 def stop(self):293 def exit(self): 266 294 try: 267 295 os.remove(self.pidfile) trunk/cherrypy/restsrv/wspbus.py
r1824 r1826 109 109 self.listeners = dict( 110 110 [(channel, set()) for channel 111 in ('start', 'stop', 'exit', 'graceful' )])111 in ('start', 'stop', 'exit', 'graceful', 'log')]) 112 112 self._priorities = {} 113 113

