Tentando entender o procedimento de inicialização do monit

2

Estou apenas começando a aprender monit. Na sua página man, encontrei isto:

The behavior of Monit is controlled by command-line options and a run control file, ~/.monitrc, the syntax of which we describe in a later section. Command-line options override .monitrc declarations.

E quando eu criei meu arquivo .monitrc com o seguinte conteúdo e testei, ele mostrou erros e eu mudei e está tudo bem agora:

➜  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) ✗

mas quando eu faço service monit restart , eu tenho isso:

➜  brt_client git:(master) ✗ service monit restart
 * Stopping daemon monitor monit                                                                                                                                                                      [ OK ] 
 * Starting daemon monitor monit                                                                                                                                                                             empty config, please edit /etc/monit/monitrc.

Então eu verifiquei o código em /etc/init.d/monit e achei isto:

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
}

Então, se eu não estiver errado, este programa não recebe sinalizadores -c ou outros. E eu verifiquei o log em /var/log/monit.log , ele não mostrou que eu reiniciei. Claro, de acordo com o script, ele acabou de sair com 0 (por que está saindo com 0?).

Então eu verifiquei o arquivo, não tenho acesso para ler /etc/monit/monitrc . Então pegue o privilégio sudo para moinit e tente novamente. Está bem.

Então, agora vem a pergunta:

Eu não encontrei nada relacionado a "~ / .monitrc" em / etc / monit / monitrc, como "include ~ / .monitrc", inclua apenas o diretório em conf.d, como a monit sabe para carregar .monitrc no diretório inicial? (Por magia?)

E digamos que eu fiz logout e meu login na faculdade no meu computador com a conta dele, isso significa que minha configuração não funcionará para ele?

Mas que monit reload deveria ter acontecido certo? (se ele não for recarregado, meu ~ / .monitrc ainda deve estar funcionando)

    
por Junchao Gu 13.07.2016 / 05:35

1 resposta

1

Os arquivos .*rc no diretório inicial do usuário geralmente servem para fornecer alguns padrões específicos do usuário, enquanto os padrões no nível do sistema geralmente são fornecidos em um arquivo *rc sob /etc para o mesmo aplicativo.

man monit deve dizer-lhe isto:

~/.monitrc Default run control file

/etc/monitrc If the control file is not found in the default location and /etc contains a monitrc file, this file will be used instead.

./monitrc If the control file is not found in either of the previous two locations, and the current working directory contains a monitrc file, this file is used instead.

No entanto, como você está dizendo que, no seu caso, o arquivo de controle de execução padrão é /etc/monit/monitrc em vez de /etc/monitrc , pode haver outros desvios do que os desenvolvedores escreveram na página man (ou pode ser que a página do manual está desatualizada ou a sua pergunta tem um caminho incorreto para esse arquivo).

No contexto da execução de monit como um serviço, o acima significaria que é padronizado para .monitrc file no diretório home do usuário que o serviço está sendo executado, e se ele não encontrar tal arquivo, usará o padrão em /etc .

    
por 13.07.2016 / 05:56