Unix 如何创建交互式程序

Unix 如何创建交互式程序,unix,shared-memory,mmap,pty,Unix,Shared Memory,Mmap,Pty,我有一个互动项目,启动成本很高。启动后,我希望将该过程分成单独的并发会话。理想情况下,每个单独的会话都将成为一个窗口,但能够单独telnet/ssh连接到每个会话也可以 从零开始写这篇文章应该不会太难,但这似乎是以前应该做/考虑的事情,也许这是一个坏主意的原因 我知道另一种方法是使用共享内存来处理初始化成本高昂的数据。我不愿意走这条路的原因是共享数据使用指针的C++数据结构,这使得它很难映射到一个不相关的过程。 < P>这是任何数据库所做的事情-启动是非常昂贵的,但是DB提供了几种不同的连接方式

我有一个互动项目,启动成本很高。启动后,我希望将该过程分成单独的并发会话。理想情况下,每个单独的会话都将成为一个窗口,但能够单独telnet/ssh连接到每个会话也可以

从零开始写这篇文章应该不会太难,但这似乎是以前应该做/考虑的事情,也许这是一个坏主意的原因


我知道另一种方法是使用共享内存来处理初始化成本高昂的数据。我不愿意走这条路的原因是共享数据使用指针的C++数据结构,这使得它很难映射到一个不相关的过程。

< P>这是任何数据库所做的事情-启动是非常昂贵的,但是DB提供了几种不同的连接方式——Oracle的BEQ协议。

telnet有问题,考虑SSH。无论哪种方式,考虑一个守护进程,它负责请求端口上的连接(我想使用AFU-UNIX套接字),然后创建一个单独的会话。 Stevens在UNIX环境中的高级编程或Rochkind的高级UNIX编程都有讨论和完整的示例。因为我的史蒂文斯的书似乎已经过了很长的假期,请参见第4.3节和第4.10节


不,使用这种方法没有悬而未决的厄运。

更新:我编写了一个Python库的概念证明,该库启动一个Unix域套接字侦听器,在每个客户端连接分叉Python程序,通过套接字将pty主fd传递给客户端;我还编写了一个小型C客户机,然后将pty主fd连接到客户机的控制tty。