백그라운드에서 실행되는 다음과 같은 Unix 프로그램(데몬)을 찾으세요.
- 임의(JSON) 메시지를 수신할 수 있습니다.
- 메시지를 받은 후 지정된 명령을 실행합니다.
- 한 번에 실행할 수 있는 이 프로세스의 인스턴스 수를 선택적으로 제한할 수 있습니다.
- UPPERlimit보다 많은 메시지가 수신되면 대기열에 추가됩니다.
뭔가 존재하나요? 내가 너무 많은 것을 요구하고 있는 걸까? 가능하다면 맞춤형 bash 솔루션도 마음에 들지 않습니다.
나는 Rabbitmq/beanstalk/gearman과 같은 큐잉 시스템을 조사했습니다. 내 요구 사항에 맞지 않는 것 같습니다 ...
태국어
답변1
전통적으로,인트라넷(8). 대부분의 Linux 배포 패키지시네트.
답변2
당신이 무엇을 찾고 있는지 잘 모르겠지만 socat
포트에서 수신 대기하는 간단한 서비스를 구축하고 모든 연결에서 쉘 스크립트를 실행하도록 할 수 있습니다. 최대 동시 연결 수를 제한할 수 있습니다. 예를 들어 ./myscript
다음을 포함하는 bash 스크립트를 만듭니다 .
#!/bin/bash
read message
echo "hello. got $message"
sleep 10
echo "bye"
그런 다음 포트 10005에서 시작 socat
(최대 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