У меня есть консольная программа на java-сервере, которую я настроил для запуска xinetd, когда соединение устанавливается на заданном порту, а затем программа работает в бесконечном цикле, получая входные данные от телефонных станций.

Дело в том, что когда новый поток приходит с биржи, xinetd каждый раз запускает новый процесс. Я попытался установить параметр ожидания на да и перезапустил deamon, но безуспешно.

Как я могу остановить это поведение и заставить демона просто направить поток на уже запущенный процесс? Я что-то упустил в моей конфигурации или это просто неправильно?

Мой конфиг выглядит следующим образом:

defaults
{
        instances               = 60
        log_type                = SYSLOG authpriv
        log_on_success          = HOST PID
        log_on_failure          = HOST
        cps                     = 50 10
}
includedir /etc/xinetd.d

И тогда мой фактический конфиг,

service aos_larmar
{
         socket_type         = stream
         protocol            = tcp
         user                = root
         type                = UNLISTED
         wait                = yes
     instances           = 256
         server              = /home/gunnl/java/start.sh
         port                = 5204
         disable             = no
}

Моя серверная ОС
Red Hat Enterprise Linux ES выпуск 4 (обновление Nahant 7)

1 ответ1

1

xinetd работает, создавая новый процесс для каждого соединения, и соединение закрывается, когда процесс заканчивается. Если у вас постоянный процесс, вы должны использовать что-то вроде netcat.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .