我试图在netcat中使用xinetd (或inetd)作为TCP代理。此设置在Linux上工作,没有问题。
在Cygwin下,无论是作为服务还是从Cygwin命令行,(x)inetd都无法打开netcat,错误是“没有这样的文件或目录”。
我已经尝试过指定/usr/bin/nc、/usr/bin/nc.exe、/cygdrive/d/cygwin/usr/bin/nc.exe、d:\cygwin\bin\nc.exe以及大量其他正向闪烁、反斜杠、Windows路径和Cygwin路径的组合。不管怎么说,我得到了errno 2, no such file or directory。
有什么想法吗?我需要尽快完成任务。
编辑:我认为这可能与d:\cygwin (lame硬编码?)有关。但我在一台在C:\上安装了cygwin的机器上进行了测试,那里也存在问题。
发布于 2014-12-20 16:10:45
和其他导入unix的进程一样,xinetd可以看到unix目录.因此,您不需要使用任何windows目录格式,特别是反斜杠变体。
第二: cygwin将大部分二进制文件安装到/bin中,而不是安装到/usr/bin中。/bin/nc.exe不在列出的尝试之间。
如果某些东西正在使用命令行的完整路径,那么它也需要从xinetd中工作。
除此之外,还有另一个潜在的麻烦来源。配置xinetd是一个常见的语法问题。您的服务应该如下所示:
service service_name {
...
server = /path/to/your/binary
server_args = --your --args
...
}...thus,到“服务器”设置,您应该插入任何参数!它们需要插入到上面的"server_args“中。如果你犯了这个错误,你就会得到上面没有发现问题的文件。
https://serverfault.com/questions/68081
复制相似问题