Я пытаюсь использовать xinetd (или inetd) с netcat для действия как прокси 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
(хромое жесткое кодирование?), но я протестировал его на машине с cygwin на C:\
, проблема существует там также.
xinetd, как и любой другой unix-импортированный процесс, может видеть unix-директорию. Таким образом, вам не нужно использовать никаких форматов каталогов windows, особенно в вариантах с обратной косой чертой.
Во-вторых: cygwin устанавливает большинство своих двоичных файлов в /bin
, а не в /usr/bin
. /bin/nc.exe
не находится между вашими перечисленными попытками.
Если что-то работает с полным путем из командной строки, оно должно работать и из xinetd.
Рядом с этим есть еще один потенциально проблемный источник. Это обычная синтаксическая проблема настройки xinetd. Ваши сервисы должны выглядеть так:
service service_name {
...
server = /path/to/your/binary
server_args = --your --args
...
}
...таким образом, к настройкам "сервера", вы не должны вставлять никаких аргументов ! Они должны быть вставлены в "server_args" выше. Если вы совершите эту ошибку, то получите именно тот файл, который не был найден проблемным выше.
.