Запуск процесса, когда порт подключен к
Я хочу создать единого клиента, который будет отправлять одноадресные запросы данных с любой из множества рабочих станций в одной локальной сети. Клиент, вероятно, будет работать под управлением Linux, но рабочие станции могут работать под управлением любой ОС. Можно ли избежать запуска демона на каждой из рабочих станций и в то же время заставить его отвечать на запросы в течение нескольких секунд? Я хочу избежать создания демона, потому что служба может использоваться нечасто, и я не хочу обременять рабочие станции другим процессом.
1 ответ
Взгляните на подходящие реализации inetd
для вашей целевой операционной системы. Эта служба прослушивает соединения и делегирует фактическое соединение обычному вводу-выводу через stdin/stdout экземпляру вашего процесса (который создается по требованию):
Утилита inetd [..] прослушивает соединения через определенные интернет-сокеты. Когда соединение найдено в одном из его сокетов, оно решает, какой услуге соответствует сокет, и вызывает программу для обслуживания запроса. Программа сервера вызывается с сервисным сокетом в качестве стандартных дескрипторов ввода, вывода и ошибок. После завершения программы inetd продолжает прослушивать сокет [..]