문제

daemontools 감독자를 어떻게 스크립트해야 합니까?

D를 사용하기 시작했습니다.제이.Bernsteins의 daemontools는 일부 프로세스를 계속 실행하고 잘 작동합니다.하지만 이제 해당 프로세스에 대한 몇 가지 추가 조건을 모니터링해야 하는데 이를 수행하는 방법에 대한 좋은 정보를 찾지 못했습니다.

내 시나리오는 웹 앱(pharo 스몰토크 가상 머신)에 대해 실행 중인 일부 프로세스가 있고 해당 프로세스가 해당 포트(로드 밸런스용)에서 각각 http에 응답한다는 것입니다.나는 그것들이 실행 중일 뿐만 아니라 http 요청에 응답하는지 확인하기 위해 어떻게든 핑을 보내고 싶습니다.30초 이상 요청에 특정 방식으로 응답하지 않으면 충돌이 발생한 것으로 처리되고 간단히 다시 시작되어야 합니다.

daemontools로도 가능합니까?그렇다면 이 스크립트를 어떻게 작성하고 어디에 배치해야 합니까?아니면 이에 대한 문서는 어디에 있습니까?

도움이 되었습니까?

해결책

가장 간단한 해결책은 30초 동안 대기한 다음 서비스 존재 여부를 테스트하는 스크립트를 사용하여 또 다른 daemontool 작업을 생성하는 것입니다(예: wget 또는 컬 사용).서비스가 적시에 응답하지 않으면 서비스를 다시 시작할 수 있습니다(svc -t yourapp) 및/또는 알림을 보냅니다.새 서비스의 실행 스크립트는 다음과 같이 간단해 보일 수 있습니다.

#!/bin/sh
sleep 30
if ! wget --quiet --timeout=5 --delete-after "http://yourapp.com/" ; then
  svc -t /etc/service/yourapp
fi

나는 또한 다음과 같은 도구를 사용하여 좋은 경험을 했습니다. 무닌.이번에도 이미지 상태에 대한 정보를 제공하는 스크립트를 제공해야 합니다.REST 서비스로 이미지를 설정하면 활성 세션, 비활성 세션, gc 매개변수, 메모리 소비, 데이터베이스 통계 등과 같은 매우 흥미로운 측정항목을 제공할 수도 있습니다.그런 다음 이 도구를 사용하면 시간이 지남에 따라 멋진 그래프를 그릴 수 있으며 상황이 잘못되었을 때 알림을 받을 경계를 지정할 수 있습니다.

다른 팁

서비스가 응답하는지 감지하려면 컬을 사용할 수 있습니다(HTTP 및 명령줄/셸 스크립트에 완벽하게 적합).

curl --connect-timeout 10 http://8.8.8.8 
curl: (28) connect() timed out!

응답이 200(OK)인지 확인하는 등 더 정교한 내용을 작성할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top