GNU屏幕库:创建/关闭/列表/日志会话,插入命令…
screenutils的Python项目详细描述
警告:此项目不再维护,因为它的维护者不再使用它 (然后切换到tmux)。如果你贡献一点,你可以收回这个项目。
屏幕实用程序
screenutils是一组有助于处理gnu屏幕窗口的类。
它需要安装gnu screen二进制文件(命名为screen并在您的路径中)才能工作。
请随意报告您所做的任何修改,整个代码源是 在gplv2的条款下可用,但我考虑使用一个更许可的许可证(wtfpl)。
示例用法
python控制台中的示例:
>>> from screenutils import list_screens, Screen >>> list_screens() [] >>> s = Screen("session1",True) >>> # funky prompts could reduce log visibility. Use sh or bash for best results >>> s.send_commands('bash') >>> s.enable_logs() >>> s.send_commands("df") >>> print next(s.logs) df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda6 20161172 8084052 11052980 43% / none 1505916 304 1505612 1% /dev none 1512676 936 1511740 1% /dev/shm none 1512676 380 1512296 1% /var/run none 1512676 0 1512676 0% /var/lock none 1512676 0 1512676 0% /lib/init/rw none 20161172 8084052 11052980 43% /var/lib/ureadahead/debugfs /dev/sda7 403567768 196284216 186783420 52% /home popi@popi-laptop:~/Dev/github/screenutils$ >>> s.disable_logs() >>> s = None >>> s = Screen("session1") >>> s.exists True >>> s2 = Screen("session2") >>> s2.exists False >>> s2.initialize() >>> s2.exists True >>> list_screens() [<Screen 'session2'>, <Screen 'session1'>] >>>
安装
您可以通过执行以下操作从github安装screenutils:
$ pip install git+http://github.com/Christophe31/screenutils.git
或者只使用pypi上发布的包,例如pip:
$ pip install screenutils
功能
- 屏幕列表
- 屏幕会话创建
- 屏幕会话关闭
- 屏幕代码插入
- 屏幕监视/记录
- 与Unix用户共享屏幕会话(见下文)
核心文档
屏幕类:
- Screen(name, initialize=False)创建新屏幕。
- name(必需):与屏幕关联的名称。
- {TT3}$:如果为真,则创建屏幕会话(如果不存在)。
- screen.id(property)屏幕的id作为字符串。
- screen.status(属性)屏幕的状态为字符串。
- 注:.id,.status,.exists均基于screen -ls 的输出
- screen.enable_logs()打开屏幕登录。日志文件的名称自动设置为Screen对象的名称。
- screen.logs一个生成器,其作用类似于日志文件上的tailF。
- screen.disable_logs()关闭登录。
- screen.kill()退出屏幕。相当于运行screen -x screen_name -X quit
- screen.detach()从屏幕上分离。
- screen.send_commands(*commands)向屏幕发送bash命令。
- *commands要运行的命令(作为字符串)。
- screen.add_user_access(unix_user_name)允许其他用户访问屏幕。
- unix_user_name(必需):要添加的用户的Unix名称。
- *注意:要允许此功能,您需要更改某些unix权限:
- sudo chmod +s /usr/bin/screen
- sudo chmod 755 /var/run/screen
函数:
- list_screens()列表屏幕。返回Screen实例的列表。
异常:
- ScreenNotFoundError:找不到屏幕时引发。
已知问题
这可能无法与bpython一起正常工作。
路线图
- 多窗口屏幕支持