gevent.backdoor --基于greenlet的交互式网络控制台,可用于任何进程#

基于绿色小程序的交互式网络控制台,可在任何流程中使用。

这个 BackdoorServer 在正在运行的进程中提供repl。只要过程是猴子修补的, BackdoorServer 可以与进程的其他元素共存。

class BackdoorServer(listener, locals=None, banner=None, **server_args)[源代码]#

基类:StreamServer

为调试目的提供程序的后门。

警告

这个后门不提供身份验证,也不试图限制远程用户可以做什么。任何可以访问服务器的人都可以采取运行中的python进程可以采取的任何操作。因此,尽管您可以绑定到任何接口,但为了安全起见,建议您绑定到只能由本地计算机访问的接口,例如127.0.0.1/localhost。

基本用法:

from gevent.backdoor import BackdoorServer
server = BackdoorServer(('127.0.0.1', 5001),
                        banner="Hello from gevent backdoor!",
                        locals={'foo': "From defined scope!"})
server.serve_forever()

在另一个终端中,连接到…::

$ telnet 127.0.0.1 5001
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
Hello from gevent backdoor!
>> print(foo)
From defined scope!

在 1.2a1 版本发生变更: 生成的greenlet现在在池中被跟踪,并在服务器停止时被杀死。

参数:
  • locals -- 如果给定,将在顶层提供“内置”值的字典。

  • banner -- 如果是geven,则会向每个连接用户打印一个字符串。

handle(conn, _address)[源代码]#

与一个远程用户交互。

在 1.1b2 版本发生变更: 每个连接都有自己的连接 locals 字典。以前他们是以一种潜在的不安全的方式分享的。