Inetd / xinetd не работает под cygwin, почему?

Я пытаюсь использовать 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:\, проблема существует там также.

3
задан 20 December 2014 в 18:11
1 ответ

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" выше. Если вы совершите эту ошибку, то получите именно тот файл, который не был найден проблемным выше.

.
0
ответ дан 3 December 2019 в 08:27

Теги

Похожие вопросы