O Inetd / xinetd não está funcionando com o cygwin, por quê?

3

Estou tentando usar o xinetd (ou inetd) com o netcat para atuar como um proxy TCP. Esta configuração funciona no Linux sem problemas.

No Cygwin, como um serviço ou da linha de comando do Cygwin, o (x) inetd falha ao abrir o netcat, com o erro "nenhum arquivo ou diretório".

Eu tentei especificar /usr/bin/nc , /usr/bin/nc.exe , /cygdrive/d/cygwin/usr/bin/nc.exe , d:\cygwin\bin\nc.exe e uma TON de outras combinações de flashes de avanço, barras invertidas, caminhos do Windows e caminhos do Cygwin. Não importa o que, eu recebo errno 2, no such file or directory .

Alguma ideia? Eu preciso desse trabalho o mais rápido possível.

Edit: Eu pensei que pode ter a ver com isso estar em d:\cygwin (lame hardcoding?), mas eu testei em uma máquina com cygwin em C:\ , o problema existe lá também.

    
por Zimmy-DUB-Zongy-Zong-DUBBY 23.09.2009 / 18:02

1 resposta

0

xinetd, assim como qualquer outro processo importado pelo unix, pode ver um diretório unix. Então você não precisou usar nenhum formato de diretório do Windows, especialmente as variantes com barra invertida.

Segundo: o cygwin instala a maioria de seus binários em /bin e não em /usr/bin . /bin/nc.exe não está entre suas tentativas listadas.

Se algo estiver trabalhando com o caminho completo a partir da linha de comando, ele também precisa trabalhar a partir do xinetd.

Além disso, há outra fonte de problemas em potencial. É um problema sintático comum ao configurar o xinetd. Seus serviços devem ser assim:

service service_name {
 ...
        server          = /path/to/your/binary
        server_args     = --your --args
 ...
}

... assim, para as configurações de "servidor", você deve inserir qualquer argumento ! Eles precisam ser inseridos no "server_args" acima. Se você cometer este erro, você receberá exatamente o arquivo que não encontrou os problemas acima.

    
por 20.12.2014 / 17:10