Запуск процесса, когда порт подключен к

Я хочу создать единого клиента, который будет отправлять одноадресные запросы данных с любой из множества рабочих станций в одной локальной сети. Клиент, вероятно, будет работать под управлением Linux, но рабочие станции могут работать под управлением любой ОС. Можно ли избежать запуска демона на каждой из рабочих станций и в то же время заставить его отвечать на запросы в течение нескольких секунд? Я хочу избежать создания демона, потому что служба может использоваться нечасто, и я не хочу обременять рабочие станции другим процессом.

1 ответ

Решение

Взгляните на подходящие реализации inetd для вашей целевой операционной системы. Эта служба прослушивает соединения и делегирует фактическое соединение обычному вводу-выводу через stdin/stdout экземпляру вашего процесса (который создается по требованию):

Утилита inetd [..] прослушивает соединения через определенные интернет-сокеты. Когда соединение найдено в одном из его сокетов, оно решает, какой услуге соответствует сокет, и вызывает программу для обслуживания запроса. Программа сервера вызывается с сервисным сокетом в качестве стандартных дескрипторов ввода, вывода и ошибок. После завершения программы inetd продолжает прослушивать сокет [..]

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