【发布时间】:2011-12-07 05:54:52
【问题描述】:
我有一个启动成本很高的交互式程序。启动后,我想将该过程分成单独的并发会话。理想情况下,每个单独的会话都将成为一个 GNU screen 窗口,但能够单独 telnet/ssh 到每个会话也可以。
从头开始写这个应该不会太难,但它似乎是以前应该完成/考虑的事情,也许这是一个坏主意的原因......
我知道另一种方法是使用共享内存来存储初始化成本很高的数据。我不愿意走这条路的原因是共享数据使用带有指针的 C++ 数据结构,这使得很难将其映射到不相关的进程中。
【问题讨论】:
-
更新:我编写了一个 Python 库的概念证明,该库启动一个 Unix 域套接字侦听器,并在每个客户端上 connect fork Python 程序,通过套接字将 pty master fd 传递给客户端;我还编写了一个小型 C 客户端,然后将 pty master fd 连接到客户端的控制 tty。
标签: unix shared-memory mmap pty