在 Linux 机器上,你有一个监听 TCP 端口A的守护进程。但是,它通常被停止,因为它很少使用并且占用了大量的系统资源。相反,我想做这样的事情:
编写一个侦听端口B的应用程序,并在建立连接后立即执行以下操作:如果守护程序已停止,则启动它并等待它侦听端口A。现在是困难的部分:以完全透明的方式将客户端连接到守护程序,即客户端不必重新连接端口A。另外,但这与这个问题无关,当一段时间没有连接时,应用程序将关闭守护程序。
当然,我可以让我的应用程序连接到守护进程并通过管道传输所有通信。我不要那个。我想要某种方式将已建立的连接转发到守护程序,然后摆脱连接的套接字,而客户端现在很高兴地与守护程序连接。在某种程度上,我想给守护进程我已经连接的 socket。有没有办法做这样的事情?
我正在运行 Debian,如果这很重要的话。我想用 C/C++ 编写应用程序,并且可以使用特定于操作系统的解决方案(即使用系统调用)。不过请原谅我,我不是一个 Linux 编码员,所以我对 Linux 系统编程不是很熟悉。如果有一些明显的方法可以做到这一点,我根本不知道。
当然,我愿意接受任何建议。