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

Я пытаюсь использовать xinetd (или inetd) с netcat для работы в качестве TCP-прокси. Эта настройка работает на Linux без проблем.

В Cygwin, либо в качестве службы, либо из командной строки Cygwin, inetd (x) не может открыть 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:\проблема там тоже есть.

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
 ...
}

...thus, to the "server" settings, your should'n insert any argument! They need to by inserted to the "server_args" above. If you commits this mistake, you will get exactly the file not found problems above.

Другие вопросы по тегам