You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在单进程中管理多个PTY且无需直接处理协议I/O?

类BBS程序的I/O架构选型疑问

现有主/远程模型的情况

我熟悉基于套接字的主/远程模型:

  • 主进程以守护进程形式运行,承载应用核心功能
  • 远程TTY连接建立时,启动独立的remote_process进程
  • remote_process通过Unix domain socket与主进程通信,主进程为每个远程TTY的I/O分配独立线程
  • 所有功能模块均运行在主进程内

这个模型适合常规CLI程序,但对交互性强的场景(比如使用ncurses)存在明显局限:关键的termios终端控制逻辑位于远程进程中,无法在主进程中直接使用,也不能通过套接字传输。如果沿用该模型,必须把大量交互逻辑迁移到remote_process中,违背了核心逻辑集中在主进程的设计初衷。

当前的核心需求与困境

主/远程模型的最大优势是协议抽象:无需关心连接来源(Telnet、SSH、串口等),也不用自行处理Telnet/SSH的协议细节,流程如下:

Telnet连接流程

  • 入站Telnet连接建立
  • Telnet服务器启动自定义登录shell /usr/sbin/remote_process
  • remote_process启动后与主进程通信

SSH连接流程

  • 入站SSH连接建立
  • 完成身份验证
  • SSH服务器启动自定义登录shell /usr/sbin/remote_process
  • remote_process启动后与主进程通信

我希望实现的目标是:在单进程内统一管理所有TTY,同时避免自行实现Telnet/SSH等协议的细节。

尝试过的思路存在问题:

  1. 让主进程直接监听网络套接字、处理Telnet/SSH流量:需要自行实现协议逻辑(比如SynchronetBBS的做法),不符合需求
  2. 核心逻辑分散到每个TTY进程、主进程仅做IPC:不利于系统级模块的动态加载/卸载,已排除

疑问

是否存在满足上述需求的方案?如果有,请从高层级说明TTY的设置流程,以及进程、套接字、TTY三者的交互方式。


内容的提问来源于stack exchange,提问作者InterLinked

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 11:36:07