Inetd / xinetd不在cygwin下工作,为什么?

我正在尝试使用netcat的xinetd(或inetd)作为TCP代理。 这个设置在Linux上没有问题。

在Cygwin中,无论是作为服务还是从Cygwin命令行,(x)inetd都无法打开netcat,并出现错误“no such file or directory”。

我已经尝试指定/usr/bin/nc/usr/bin/nc /cygdrive/d/cygwin/usr/bin/nc.exe/usr/bin/nc /cygdrive/d/cygwin/usr/bin/nc.exe / d:\cygwin\bin\nc.exe /usr/bin/nc /cygdrive/d/cygwin/usr/bin/nc.exed:\cygwin\bin\nc.exe和TON正向闪烁,反斜杠,Windowspath和Cygwinpath的其他组合。 无论如何,我得到的errno 2, no such file or directory

有任何想法吗? 我需要尽快工作。

编辑:我认为这可能与它在d:\cygwin (跛足硬编码?),但我在一台机器上testing了cygwin在C:\ ,也存在那里的问题。

xinetd,就像任何其他unix导入的进程一样,可以看到一个unix目录。 所以你不需要使用任何Windows目录格式,特别是不使用反斜杠的变体。

第二:cygwin将大部分二进制文件安装到/bin ,而不是放在/usr/bin/bin/nc.exe不在列出的尝试之间。

如果某些命令正在使用命令行的完整path,则也需要从xinetd运行。

除此之外,还有另一个潜在的麻烦来源。 这是configurationxinetd的常见语法问题。 你的服务应该是这样的:

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

…因此,到“服务器”设置, 你应该不插入任何论点 ! 他们需要通过插入到上面的“server_args”。 如果你犯这个错误,你会得到完全没有发现问题的文件上面。