Domanda

Ho un'applicazione server che scrive ad un popen ( "myCommand", "w") descrittore di file in un thread separato e se il comando passato a popen () produce alcun output a stdout o stderr, i miei chiusura dell'applicazione . Tuttavia, questo è solo un problema quando la mia applicazione server è stato richiamato tramite inetd, se ho usato ssh per avviare il server, non ha questo problema.

Allo stesso modo, quando la mia applicazione server legge da un popen ( "myCommand2", "r") descrittore di file in un thread separato e se il comando passato a popen () produce alcun output a stderr (stdin sta per la pipa ), l'applicazione esce. Di nuovo, questo si verifica solo con inetd convocazione, non ssh convocazione.

È stato utile?

Soluzione

è necessario chiudere tutti i esisteva FDS del processo prima di aprire il tubo, poi fare redirezione I / O. questo perché, se inetd, il processo viene eseguito come un demone.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top