我有一个服务器应用程序,写入到POPEN(“mycommand的”,“W”)在一个单独的线程,如果文件描述符的命令传递给popen方法()的结果在任何输出stdout或stderr,在我的应用程序退出。然而,这仅仅是当我的服务器应用程序经inetd调用,如果我用ssh来启动服务器,它没有这个问题的问题。

类似地,当我的服务器应用程序从POPEN读取(“myCommand2”,“R”)在一个单独的线程,如果该命令文件描述符传递popen方法()的结果在任何输出到stderr(标准输入将要我的管),应用程序退出。再次,这仅与inetd的召唤时,不SSH召唤。

有帮助吗?

解决方案

您需要打开管道之前关闭过程中的所有存在FDS,然后执行I / O重定向。这是因为如果inetd的,该过程作为后台进程运行。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top