이제 막 모니터를 배우기 시작했어요. 매뉴얼 페이지에서 다음을 발견했습니다.
Monit의 동작은 명령줄 옵션과 실행 제어 파일 ~/.monitrc에 의해 제어됩니다. 해당 구문은 이후 섹션에서 설명합니다. 명령줄 옵션은 .monitrc 선언을 재정의합니다.
다음 내용으로 .monitrc 파일을 생성하고 테스트했을 때 오류가 표시되어 변경했는데 이제 모든 것이 잘 작동합니다.
➜ brt_client git:(master) ✗ monit -t
/home/jgu/.monitrc:2: Warning: Program does not exist: 'echo'
➜ brt_client git:(master) ✗ vim ~/.monitrc
➜ brt_client git:(master) ✗ vim ~/.monitrc
➜ brt_client git:(master) ✗ monit -t
➜ brt_client git:(master) ✗
하지만 이렇게 하면 service monit restart
다음과 같은 결과를 얻습니다.
➜ brt_client git:(master) ✗ service monit restart
* Stopping daemon monitor monit [ OK ]
* Starting daemon monitor monit empty config, please edit /etc/monit/monitrc.
그래서 /etc/init.d/monit의 코드를 확인하고 다음을 발견했습니다.
CONFIG="/etc/monit/monitrc"
monit_check_config () {
# Check for emtpy config.
if [ "`grep -s -v \"^#\" $CONFIG`" = "" ]
then
echo "empty config, please edit $CONFIG."
exit 0
fi
}
따라서 내 기억이 정확하다면 이 프로그램은 -c나 다른 플래그를 사용하지 않습니다. 로그인을 확인했는데 /var/log/monit.log
나타나지 않아서 다시 시작했습니다. 물론 스크립트에 따르면 그냥 0으로 종료됩니다(왜 0으로 종료합니까?).
그래서 파일을 확인해 보니 읽기 권한이 없는 것으로 나타났습니다 /etc/monit/monitrc
. 따라서 moinit에 대한 sudo 권한을 얻고 다시 시도하십시오. 괜찮은.
이제 진짜 질문이 나옵니다.
/etc/monit/monitrc에서 "include ~/.monitrc"와 같은 "~/.monitrc"와 관련된 항목을 찾지 못했습니다. conf.d의 디렉터리만 포함되어 있습니다. monit은 어떻게 집에 로드하는지 알 수 있나요? 디렉토리.monitrc? (마법을 사용하나요?)
내가 로그아웃하고 그의 계정으로 내 컴퓨터에 로그인한다고 가정하면 내 구성이 그에게 전혀 작동하지 않는다는 의미입니까?
하지만 이런 일이 monit reload
일어나야 겠죠? (다시 로드되지 않으면 ~/.monitrc가 계속 실행되어야 합니다)
답변1
사용자의 홈 디렉토리에 있는 파일은 .*rc
일반적으로 일부 사용자별 기본값을 제공하는 데 사용되는 반면, 시스템 수준 기본값은 일반적으로 *rc
동일한 응용 프로그램에 대한 파일에 제공됩니다./etc
man monit
당신에게 이것을 말해야합니다 :
~/.monitrc
기본 실행 제어 파일
/etc/monitrc
이 파일은 제어 파일이 기본 위치에 없고 해당 파일을/etc
포함하는 경우에 사용됩니다.monitrc
./monitrc
이 파일은 처음 두 위치에서 제어 파일을 찾을 수 없고 현재 작업 디렉터리에 monitrc 파일이 포함되어 있는 경우에 사용됩니다.
그러나 귀하가 말하는 것은 귀하의 경우 기본 실행 제어 파일이 아니라는 것이므로 개발자가 매뉴얼 페이지에 작성한 것과 다른 편차가 있을 /etc/monit/monitrc
수 /etc/monitrc
있습니다(또는 매뉴얼 페이지가 오래되었거나 귀하의 질문일 수도 있습니다. 파일 경로가 올바르지 않습니다.)
서비스로 실행되는 맥락에서 monit
위의 내용은 기본적으로 .monitrc
서비스가 실행 중인 사용자의 홈 디렉터리에 파일을 저장하고 해당 파일을 찾을 수 없는 경우 /etc
.