问题标签 [pty]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - pty 手册页疑问/问题
man pty
说……
为什么这样?这些操作是如何处理的linux
?
macos - 如何将终端切换到使用 NSTask 启动的进程的新子进程?
我用这里描述的方法做了一个伪终端:http: //lists.apple.com/archives/student-dev/2005/Mar/msg00019.html
终端本身运行良好。无论如何,问题是终端无法切换到子进程。例如,我使用 启动bash
,NSTask
如果我ftp
在 中执行bash
,它会自动停止。
如果我尝试继续ftp
with fg
,它会安静地终止。(我用活动监视器检查了这个)
我认为它需要更多的基础设施(完成伪终端)才能将控制权切换到子进程。这样做需要什么?
python - python pty 模块 - 缓冲区挂起?
我正在尝试制作一个打开 ssh 连接并允许通过 ssh 发送命令并返回命令输出的小模块。因此,应该只有一个 ssh 连接(这样多个命令不会导致自动阻塞)。我知道 paramiko,但我不能使用它,因为由于其他限制,我必须使用 python3.2。
我写的模块在这里:http: //kbicker.web.cern.ch/kbicker/ssh.py
原则上,它有效。但是,当使用 cat 读取文本文件时,程序会挂起。我确定这是因为从 pty 读取新行挂起。我认为,存在某种缓冲问题,但我不知道如何解决它。
对于我的代码的任何其他建议,我也将不胜感激。
预先感谢您的帮助!
unix - 如何分叉交互式程序
我有一个启动成本很高的交互式程序。启动后,我想将该过程分成单独的并发会话。理想情况下,每个单独的会话都将成为一个GNU 屏幕窗口,但能够单独 telnet/ssh 到每个会话也可以。
从头开始写这个应该不会太难,但似乎以前应该做/考虑过一些事情,也许这是一个坏主意的原因......
我知道另一种方法是使用共享内存来存储初始化成本很高的数据。我不愿意走这条路的原因是共享数据使用带有指针的 C++ 数据结构,这使得很难将其映射到不相关的进程中。
javascript - 在 python 中为基于 Web 的 ubuntu 终端编写伪终端
我有兴趣编写一个基于 Web 的终端,它可以在 ubuntu 终端中执行和自动完成命令。
我摆弄了 Anyterm http://www.anyterm.org,它在后端服务器上使用 ROTE:“用于 VT102 终端仿真的简单 C 库”,在终端 ui 上使用 javascript/html。问题是我不能让它在同一个窗口中打开两个终端。
在做了一些研究之后,我决定在 python 中编写一个终端服务器/伪终端(以正确的术语为准),它可以:
- 在 ubuntu 终端执行命令(如 ls、grep 等...)
- 自动完成命令(如 $gdi (pressed tab) $gedit)
- 并同时打开多个终端实例(当在一个终端中键入 ls 时,另一个终端不会将 ls 识别为自另一个终端会话以来的最后一个命令)
我发现使用pty python 模块我可以编写一个伪终端,但是我是 python 的新手,我什至无法让该页面上的示例正常工作。
我打算让 python 脚本使用我将编写的 javascript/html 终端 ui 为 http 服务器提供服务(这是我想为这个项目选择 python 的主要原因)。然后我想让 web ui 与后端终端“服务器”对话并将结果返回给 web ui。
如果你能指出我正确的方向,也许告诉我应该使用哪个模块 - 如果不是 pty - 并给我一些关于如何编写 python 伪终端服务器的想法,我将不胜感激。
我知道 javascript/php 并且熟悉 bash 脚本 - 此时我可以选择基于 C 或基于 python 的后端服务器,python 是否适合这个项目?
注意:我打算编写一个使用 ajax post 或 get 方法从后端服务器检索终端输出的 ui。
git - 当我因“通道 0 上的 PTY 分配请求失败”而被锁定时如何获得 shell 访问权限
我在远程外壳上安装了 gitosis。它工作正常。但现在我无法登录交互式 shell。如此处所述,似乎 gitosis 禁用了 tty。无论如何我可以把它找回来吗?我没有远程服务器的 root 访问权限。
c - 如何在带有 C 的 Linux 中使用伪终端?
我试图弄清楚如何在 linux 中使用伪终端,本质上我想创建一个 telnetd 克隆,我在前面的问题中提到过。
我了解主从终端的概念,并且对如何在 C 中使用系统调用有基本的掌握。
我的问题涉及打开从/主文件描述符后的下一步。如何在从站中启动 getty?网上有没有使用 forkpty()、openpty() 或其他 API 的好资源?
C 中的一些示例会有所帮助。这是一个非常相似的问题,但没有人真正提供任何示例。
ruby - 如何确定 PTY.spawn 何时在 ruby 脚本中完成,然后开始新进程
我有一个 Ruby 脚本,它生成一个进程并使用 expect 等待输入请求,提供该输入,然后在进程完成时生成一个新进程。
最初的问题是脚本没有等待第一个进程完成,而是执行了脚本中的下一行。
所以我将 Process.wait(pid) 添加到脚本中,但现在脚本挂起等待第二个PTY.spawn
at的输入Process.wait(pid)
。
我正在使用 Ruby 1.9.2 运行脚本,因为我知道在 Ruby 1.8.7 中 存在一些问题。PTY.spawn
脚本如下所示:
有谁知道为什么脚本会挂在Process.wait(pid)
第二个PTY.spawn
?
ssh - 在 ec2 实例上运行 sudo 命令
我无法在我的 ec2 客户端上运行“sudo su”,我通过 java 程序 ssh 进入客户端并通过程序运行命令。我可以运行像“ls”和“ifconfig”这样的命令。
我收到一条错误消息,提示“sudo:抱歉,您必须有一个 tty 才能运行 sudo”。
如何运行命令,我正在使用 Jsch 将 ssh 用于我的 ec2 实例。