Pergunta

Eu tenho um aplicativo de servidor que grava em um descritor de arquivo Popen ("MyCommand", "W") em um encadeamento separado e se o comando passado para Popen () resultará em qualquer saída para stdout ou stderr, o meu aplicativo sai. No entanto, isso é apenas um problema quando meu aplicativo de servidor foi chamado via INTD, se eu usasse o SSH para iniciar o servidor, ele não possui esse problema.

Da mesma forma, quando meu aplicativo de servidor lê de um descritor de arquivo Popen ("MyCommand2", "R") em um tópico separado e se o comando passado para Popen () resultará em qualquer saída para Stderr (stdin está indo para o meu tubo), o saídas de aplicativos. Novamente, isso ocorre apenas com a convocação do INETD, não a convocação do SSH.

Foi útil?

Solução

Você precisa fechar todos os FDs do processo antes de abrir o tubo e, em seguida, o redirecionamento de E/S. Isso ocorre porque, se Inetd, o processo é executado como daemon.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top