Ищу программу unix, которая работает в фоновом режиме (демон), которая:
Есть ли что-нибудь? Я слишком многого прошу? Я бы не возражал против специального решения для bash, если это возможно.
Я изучал такие системы очередей, как rabbitmq / beanstalk / gearman. Кажется, они не соответствуют моим требованиям ..
Тай
Я не уверен, что вы ищете, но вы можете создавать простые службы, используя socat
, чтобы прослушивать порт и получать он запускает сценарий оболочки, например, для каждого соединения. Вы можете ограничить максимальное количество одновременных подключений. Например, создайте сценарий bash ./ myscript
с удержанием:
#!/bin/bash
read message
echo "hello. got $message"
sleep 10
echo "bye"
Затем запустите socat
на порту 10005 с макс 2 дочерними элементами, чтобы запустить сценарий:
socat TCP4-LISTEN:10005,reuseaddr,fork,max-children=2 SYSTEM:./myscript
Теперь вы можете подключиться к этому порту используя любой сетевой инструмент, который вам нравится, и взаимодействуйте со скриптом.Используя встроенную функцию bash / dev / tcp /
для подключения к порту, будет достаточно следующего:
(echo "$(date) my message"; cat -n >&2) <>/dev/tcp/localhost/10005 >&0 &
Если вы введете эту команду несколько раз, только 2 будут выполнены, а остальные будут поставлены в очередь. Типичный вывод будет
1 hello. got Wed May 11 17:33:19 CEST 2016 my message
2 bye
Традиционно inetd (8). Большинство дистрибутивов Linux имеют пакет xinetd .