eventlet.backdoor 是正在运行中的进程内的 Pyhon 交互解释器。
该模块便于检测一个长期运行进程的运行状态,提供了一种可以不阻塞应用正常操作的 Pyhon 交互解释器,从而极大地方便了调试、性能调优或仅仅是了解事情是怎么运转的。
在应用中孵化一个协程,这个协程运行一个 backdoor_server ,这个 backdoor_server 中有一个处于监听状态的套接字:
eventlet.spawn(backdoor.backdoor_server, eventlet.listen(('localhost', 3000)))
当这个协程运行时,就可以通过 telnet 访问指定的端口,进而进入到应用的“后门”中了:
$ telnet localhost 3000 Python 2.6.2 (r262:71600, Apr 16 2009, 09:17:39) [GCC 4.0.1 (Apple Computer, Inc. build 5250)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import myapp >>> dir(myapp) ['__all__', '__doc__', '__name__', 'myfunc'] >>>
backdoor 很乐意在命令间将控制转给应用的其他部分,所以你可以观察一个长期服务请求的服务器中不同解释器命令带来的状态改变。
eventlet.backdoor.backdoor(conn_info, locals=None)