pty

    1热度

    2回答

    我想做一个小模块,它打开一个ssh连接并允许通过ssh发送命令并返回命令的输出。因此,应该只有一个ssh连接(以便多个命令不会导致自动阻止)。我知道paramiko,但我不能使用它,因为我必须使用python3.2因为其他约束。 我写的模块是在这里:http://kbicker.web.cern.ch/kbicker/ssh.py 原则,它的工作原理。但是,使用cat读取文本文件时,程序会挂起。我

    0热度

    1回答

    我有一个交互式程序,启动成本很高。启动后,我想将流程分成单独的并发会话。理想情况下,每个单独的会话将成为一个GNU screen窗口,但能够单独telnet/ssh到每个会话也没关系。 应该不会太难从头开始写这一点,但似乎喜欢的事,应该已经完成​​/前认为,也许是有原因的,这是一个糟糕的主意...... 我知道,另一种方法是使用共享内存来处理初始化代价高昂的数据。我不愿走这条路的原因是共享数据使用

    1热度

    2回答

    我想使用(POSIX)pipe以两种方式连接。即我可以在两端读写。 这可能吗? (我不想创建两个管道,与4个文件描述符。我想只有2个文件描述符,我可以在两端读/写)。 基本上,它应该是回退到如果失败,则为openpty。

    0热度

    1回答

    通常,CouchDB通过STDIO通过简单的基于行的协议与视图服务器进行通信。 我想要做的是,而不是一个视图服务器,它读取和写入某种管道或伪终端,然后我连接,并播放视图服务器。 我认为这样做的一个方法是对cat和FIFO的很多复杂的使用。 但是我发现在我的Mac上echo "hi" > /dev/ttys000回到我的终端,所以我认为应该有可能以这种方式建立连接,但我不能从manpages中告诉如

    2热度

    2回答

    我有兴趣编写一个基于web的终端,它可以在ubuntu终端中执行和自动完成命令。 我已经摆弄了Anyterm​​,它在后端服务器上使用ROTE:“VT102终端仿真的简单C库”,终端UI使用javascript/html。问题是我无法在同一个窗口中打开两个终端。 做一些研究我已经决定写终端服务器/伪终端(无论哪个是正确的术语)在python后其可以: 执行(在Ubuntu终端的命令如ls,grep

    3热度

    1回答

    我试图港口一些Python代码类似下面的红宝石: import pty pid, fd = pty.fork if pid == 0: # figure out what to launch cmd = get_command_based_on_user_input() # now replace the forked process with the com

    2热度

    1回答

    man pty说... The BSD ioctl(2) operations TIOCSTOP, TIOCSTART, TIOCUCNTL, and TIOCREMOTE have not been implemented under Linux. 为何如此?这些操作在linux中如何处理?

    0热度

    1回答

    我需要做的事情如下:在Python脚本产生的时候,比如说“ls --colors = always /”Linux命令,并读取其输出。其中重要的部分是我需要输出来保留所有ANSI转义序列(颜色等),以便稍后将这些序列转换为HTML。我听说Python的pty模块可以做到这一点,但我找不到在Internet中使用它的有用示例,而且该模块的文档不够全面。如果有人能指导我完成这项任务,我将不胜感激。

    1热度

    2回答

    我用这里描述的方法制作了伪终端:http://lists.apple.com/archives/student-dev/2005/Mar/msg00019.html 终端本身运行良好。无论如何,问题是终端不能切换到子进程。例如,我启动bash与NSTask,并且如果我在bash内执行ftp,它会自动停止。 ftp ftp ftp> [1]+ Stopped ftp bash-3.2

    5热度

    2回答

    我使用pty读取非阻塞的过程的标准输出是这样的: import os import pty import subprocess master, slave = pty.openpty() p = subprocess.Popen(cmd, stdout = slave) stdout = os.fdopen(master) while True: if p.poll()