pty相关内容

Linux PTY 上的 Ruby 在没有 EOF 的情况下消失,引发 Errno::EIO

我正在编写一些代码,它获取一个文件,将该文件传递给几个二进制文件之一进行处理,并监视转换过程中的错误.我已经在 OSX 上编写并测试了以下例程,但由于我不清楚的原因,linux 失败了. #运行命令,捕获输出使其不显示PTY.spawn(命令) {|r,w,pid|直到 r.eof?做##标记puts r.readline结尾} 运行的命令变化很大,##mark 处的代码已被简化为本地回显,以 ..
发布时间:2022-01-24 22:57:25 其他开发

像在终端中一样近乎实时地运行命令并分别获取其标准输出和标准错误

我正在尝试在 Python 中找到一种方法来运行其他程序: 可以记录正在运行的程序的标准输出和标准错误分开. 正在运行的程序的stdout和stderr可以是近乎实时地查看,这样如果子进程挂起,用户可以看到.(即我们不等待执行完成之前将 stdout/stderr 打印给用户) 奖励标准:正在运行的程序不知道它是通过 python 运行的,因此不会做意想不到的事情(比如将其输出分块而不是 ..
发布时间:2022-01-18 15:19:30 Python

将数据传送到需要 TTY(终端)的 Linux 程序

我在 Linux 中有一个程序,如果它的 stdin/stdout 不是 TTY(终端设备),它就会拒绝运行.是否有一个易于使用的工具可以创建 PTY,使用新创建的 TTY 启动程序,并将所有数据复制到 stdin/stdout? 用例不是交互式的,而是脚本化的.我正在寻找最轻量级的解决方案,最好不要创建 TCP 连接,并且不需要安装太多其他工具和库. 解决方案 unbuffer,e ..
发布时间:2021-12-28 10:05:46 服务器开发

如何在 Rust 中不阻塞地读取子进程的输出?

我正在用 Rust 制作一个需要与子进程通信的小型 ncurses 应用程序.我已经有一个用 Common Lisp 编写的原型.我正在尝试重写它,因为 CL 为这样一个小工具使用了大量内存. 我在弄清楚如何与子流程进行交互时遇到了一些麻烦. 我目前正在做的大致如下: 创建流程: let mut program = match Command::new(command).arg ..
发布时间:2021-12-25 09:36:39 其他开发

如何重定向写入 tty 的程序?

这是未重定向的输出(如果你不知道module是什么,那也无所谓): $ 模块帮助 null----------- 'null' 的模块特定帮助 ---------------这个模块完全没有任何作用.它只是作为您的占位符点文件初始化.版本 3.2.6 假设我想将它重定向到一个文件...... $ module help null >aaa.txt----------- 'null' 的模块特 ..
发布时间:2021-12-18 16:00:23 其他开发

对分配伪 TTY 的 Docker -t 选项感到困惑

这个选项到底有什么作用?我已经在 TTY 上阅读了很多,但我仍然感到困惑.我在没有 -t 和只有 -i 的情况下玩了起来,似乎希望用户输入的程序在没有 -t 的情况下抛出错误.为什么启用伪 TTY 很重要? 解决方案 -t 选项适用于 Unix/Linux 如何处理终端访问.过去,终端是硬线连接,后来是基于调制解调器的连接.这些有物理设备驱动程序(它们是真正的设备).一旦通用网络投入使用, ..
发布时间:2021-12-07 11:17:37 其他开发

无法读取最后一个未缓冲的行

我正在尝试从“apt-get download firefox"之类的命令中读取最后一行.通常输出会像 获取:1 http://archive.ubuntu.com/ubuntu/utopic/main firefox amd64 32.0+build1-0ubuntu2 [34.9 MB]2% [1 Firefox 646 kB/34.9 MB 2%] 最后一行不断更新(直到达到 100% ..
发布时间:2021-12-02 17:10:04 其他开发

如何将 ConPTY 输出转换为 HTML

我正在使用 ConPTY 节点 api 来模拟终端并捕获文本.在此之前,我使用了常规的 powershell.exe 终端,并使用此模块将其转换为 html,效果很好. https://www.npmjs.com/package/ansi-to-html 但是现在使用 ConPTY,格式略有不同,而且效果不佳.我看到一些奇怪的文字.有谁知道将其转换为友好 HTML 的最佳方法是什么? ..
发布时间:2021-09-05 20:37:56 其他开发

如何在 C# 中模拟 ANSI 终端?

我在 Mono 中有一个应用程序,它创建一个 Putty 窗口,连接到它的 PTY 并通过它与世界通信. 感谢 Putty,我有一个完整的终端,我可以向我的应用程序发送特殊代码(如 Ctrl+C、Ctrl+Z). 我想回到我的终端,在其中启动应用程序.我想获取尽可能多的组合键.这样我就可以通过 ssh 使用我的应用程序,而不会弹出任何窗口. 我的想法是从/dev/检索我当前的终端 ..
发布时间:2021-09-05 20:37:00 C#/.NET

无法更改 pty/N 上的终端大小(适用于 ttyN)

我使用 next 更改终端大小: rc = ioctl(fd, TIOCSWINSZ, &ws); 当我在 linux 文本终端(通过 Alt-Ctrl-F1 切换)下运行它时,结果是我希望看到的.ioctl syscall 给出的范围内的整个我的输入和输出. 但是当我通过 SSH 连接到 localhost 并运行相同的程序时,它只能部分工作.我的意思是我不能输入比 ioctl 设置的终端 ..
发布时间:2021-09-05 20:29:52 其他开发

ssh 如何从 tty 接收密码?

我想知道 openssh 如何在登录时获取密码,因为我陷入了将密码自动输入到 linux 中类似工具的问题,这需要像 ssh 一样从 tty 获取密码. 尝试了解sshpass,发现sshpass fork了一个pid相同的子进程,然后在子进程下输入密码. 不知道我的猜测是否正确,ssh 需要检查正确的 pid,因为我无法使用另一个进程输入 ssh 密码来标准输入到当前的 tty. ..
发布时间:2021-08-27 20:03:27 服务器开发

Python + SSH 密码身份验证(没有外部库或公钥/私钥)?

所以我知道你可以使用 Pexpect 来解决这个问题,但除了 Python3 提供的库之外,我不想依赖其他库来解决这个问题. 我也知道生成公钥并允许它们在远程主机上是理想的,但这就是我打算使用此脚本的目的(在正确的位置设置密钥等). 这是我在 SO 社区的大量帮助下“我自己"获得的.我正在检查分叉的子伪终端是否完成了它应该执行的操作.这意味着我可以判断 SSH 是否已完成执行,因为只要 ..
发布时间:2021-08-27 19:50:02 Python

sshpass 抛出错误“无法获得伪终端:成功"

我正在尝试运行 sshpass 工具来自动执行 sftp 操作. 在另一台服务器上,该命令有效,但在这台服务器上,它只返回一行错误消息. 这是我正在使用的命令: sshpass -p 密码 sftp Uname@Host 我得到了错误: 获取伪终端失败:成功 我已经在许多不同的主机上以 root 用户的身份尝试过它,我可以毫无问题地进行 sftp,所以我很确定这是 sshpas ..
发布时间:2021-07-23 19:53:06 其他开发

无法读取最后未缓冲的行

我正在尝试从“apt-get download firefox"之类的命令中读取最后一行.通常输出会像 获取:1 http://archive.ubuntu.com/ubuntu/utopic/main firefox amd64 32.0+build1-0ubuntu2 [34.9 MB]2% [1 Firefox 646 kB/34.9 MB 2%] 最后一行不断更新(直到达到 100% ..
发布时间:2021-06-28 19:11:53 其他开发

运行命令并像在终端中一样近乎实时地分别获取其标准输出和标准错误

我试图在 Python 中找到一种方法来运行其他程序: 可以记录正在运行的程序的stdout和stderr 正在运行的程序的 stdout 和 stderr 可以是近乎实时地查看,这样如果子进程挂起,用户可以看到.(即我们不等待执行完成之前向用户打印标准输出/标准错误) 奖励标准:正在运行的程序不知道它是通过 python 运行的,因此不会做意想不到的事情(比如将其输出分块而不是实时打印 ..
发布时间:2021-06-25 19:28:02 Python

如何使用 PHP 设置交互式 SSH 会话?

我正在尝试通过 Mac OS X 10.6 上的命令行使用 PHP 建立到远程服务器的交互式 SSH 连接.我目前正在使用 PHP 的 proc_open 函数来执行以下命令: ssh -t -t -p 22 user@server.com 这几乎有效.-t -t 选项应该强制一个伪终端,它们几乎可以做到.我可以输入 SSH 密码并按回车键.然而,按下回车后,终端似乎只是挂起.没有输出,什么也 ..
发布时间:2021-06-12 20:25:11 PHP

在 OS X 上安装 pty.js(节点)时出错

我在尝试使用 node 安装 pty.js 时遇到了一个异常问题: 如果我运行 npm install pty.js 我收到这个错误: >节点gyp重建CXX(目标)发布/obj.target/pty/src/unix/pty.o../src/unix/pty.cc:487:10: 错误:使用未声明的标识符“openpty"返回 openpty(amaster, aslave, name, ..
发布时间:2021-06-09 18:54:41 其他开发

无法在Mac OS High Sierra下打开pty

我的问题的实质是“用户程序如何在Mac OS High Sierra上打开pty(例如/dev/ptyp0)?"设备名称的标准open()似乎不起作用,即使其保护为crw-rw-rw-. 上下文正在Mac OS下运行Emacs.在High Sierra之前,我命令Emacs在其中创建一个子进程的Shell窗口时,Emacs分配了一个与子进程进行通信的pty.升级到High Sierra后,E ..
发布时间:2021-05-31 19:12:12 其他开发

在openpty之后ncurses newterm

我试图弄清楚如何做: 创建一个新的伪终端 打开在(从属)伪终端内运行的ncurses屏幕 叉子 A)从正在(重击)运行程序的终端向新的(从属)终端转发I/O或 B)退出,使ncurses程序在新的pty中运行. 任何人都可以提供指向我可能做错的事情的指针,或者这会使其中的一些有意义,甚至更好地使用带有 posix_openpt()、openpty() 或 for ..
发布时间:2021-05-29 22:34:09 服务器开发

有没有办法将外壳连接到伪tty?

如果我有一个(编译的)后台进程(在GNU/Linux上),例如守护程序,则使用 openpty()或类似的方法为自己创建一个伪tty,有没有办法连接从外壳访问它,例如打开一个面向命令行的界面(例如,用于调试/即时配置它). 这与这里的要求非常相似: 如何创建可以通过Linux中的屏幕应用程序连接的pty 有人建议使用 answer 在这里使用屏幕和minicom进行连接,但是我不 ..
发布时间:2021-05-29 22:18:47 服务器开发